在本教程中,我们将构建一个基本的 Movie 数据库应用程序。首先,我们将从速从简地创建 Movie 数据库应用程序。我们将直接从控制器操作执行所有数据访问。
接下来,我们将学习如何使用 Repository 模式。使用 Repository 模式需要更多的工作。然而,采用这种模式的好处是构建的应用程序更适合更改且易于进行测试。
什么是 Model 类?
MVC 模型包含未包含在 MVC 视图或 MVC 控制器中的所有应用程序逻辑。其特别之处在于,MVC 模型包含所有应用程序业务和数据访问逻辑。
可以使用各种不同的技术实现数据访问逻辑。例如,可以使用 Microsoft Entity Framework、NHibernate、Subsonic 或 ADO.NET 类构建数据访问类。
在本教程中,作者将使用 LINQ to SQL 查询并更新数据库。LINQ to SQL 提供了一种非常简单的方法来与 Microsoft SQL Server 数据库交互。但是,我们并未将 ASP.NET MVC Framework 以任何方式附加到 LINQ to SQL,了解这一点非常重要。ASP.NET MVC 可以与任何数据访问技术兼容。
创建 Movie 数据库
在本教程中,为了说明如何构建 Model 类,我们将构建一个简单的 Movie 数据库应用程序。第一步是创建新的数据库。右键单击 Solution Explorer 窗口中的 App_Data 文件夹,然后选择菜单选项 Add,New Item。选择 SQL Server Database模板,将其命名为 MoviesDB.mdf,然后单击Add 按钮(如图 1 所示)。
图 1:添加新的 SQL Server 数据库(
列名称 数据类型 允许空值 Id Int False Title Nvarchar(200) False Director Nvarchar(50) False 需要对 Id 列进行两项特殊的处理。首先,需要将 Id 列标记为主键列,方法是在 Table Designer 中选择列,然后单击钥匙图标。LINQ to SQL 要求在执行插入或更新数据库时指定主键列。 接下来,需要将 Id 列标记为 Identity 列,方法是将 Is Identity 属性赋值为 Yes(如图 3 所示)。每当将新数据行添加到表时,都会自动给 Identity 列分配一个新序号。 我们的 MVC 模型将包含表示 tblMovie 数据库表的 LINQ to SQL 类。要创建这些 LINQ to SQL 类,最简单的方法是右键单击 Models 文件夹,选择Add,New Item,选择 LINQ to SQL Classes 模板,将类命名为 Movie.dbml,然后单击Add 按钮(如图 4 所示)。 图 4:创建 LINQ to SQL 类(单击查看大图) 默认情况下,Object Relational Designer 创建一个与拖放到 Designer 上的数据库表名称相同的类。但是,我们不希望类的名称为tblMovie。因此,单击 Designer 中的类名称并将其更改为 Movie。 最后,要记住单击 Save按钮(软盘图标)保存 LINQ to SQL 类。否则,Object Relational Designer 将不会生成 LINQ to SQL 类。 生成 LINQ to SQL 类之后,我们可以使用这些类从数据库中检索数据。在本部分中,我们将学习如何直接在控制器操作中使用 LINQ to SQL 类。我们将从 MVC 视图的 tblMovies 数据库表中显示电影列表。 首先,我们需要修改 HomeController 类。该类位于应用程序的 Controllers 文件夹中。将该类修改为如程序清单 1 所示。 程序清单 1Controllers\HomeController.cs
创建 LINQ to SQL 类
在控制器操作中使用 LINQ to SQL