asp.net mvc程序设计教程第三版课后答案,
在本节中,我们将添加一些类来管理数据库中的电影。这些类将成为我们MVC应用程序的“模型”部分。
我们将使用。NET框架称为“实体框架”来定义这些模型类并使用它们来操作。实体框架(通常简称为“EF”)支持一种叫做“代码优先”的开发范式。代码优先允许您通过编写一些简单的类来创建模型对象。可以通过访问这些类来访问数据库,这是一种非常方便快捷的开发模式。
4.1使用NuGet安装EFCodeFirst
我们可以使用NuGet包管理器(安装ASP.NET MVC 3时会自动安装)将EFCodeFirst类库添加到我们的MvcMovie项目中。这个类库使我们能够直接使用代码优先。点击“工具”菜单下“库包管理器”子菜单下的“添加库包引用”菜单选项,如图4-1所示。
图4-1使用NuGet包管理器
点击菜单选项“添加库包引用”,会弹出一个标题为“添加库包引用”的对话框,如图4-2所示。
图4-2“添加库包引用”对话框
默认情况下,左侧的“全部”选项处于选中状态。因为没有安装任何软件包,所以“未找到任何项目”会显示在右侧面板中。点击左侧面板中的“online”选项,NuGet Package Manager将检索服务器上所有当前可用的包,如图4-3所示。
图4-3获取软件包管理器正在检索软件包信息
目前服务器上有数百个可用的包,现在我们只关注EFCodeFirst包。在右上角的搜索输入框中输入“EFCode”。在搜索结果中,选择EFCodeFirst包,点击Install按钮安装该包,如图4-4所示。
图4-4选择EFCodeFirst包并安装它
点击安装按钮后,会弹出一个许可接受窗口,如图4-5所示。在此窗口中,您必须单击“我接受”按钮接受许可条款,然后安装才能继续。
图4-5许可接受窗口
安装完成后,单击关闭按钮。我们的MvcMovie项目将自动加载EntityFramework程序集,它包含EFCodeFirst类库。
图4-6实体框架组件在安装后自动加载。
4.2添加模型类
在解决方案资源管理器中,右击Models文件夹,点击“添加”菜单下的“类”,如图4-7所示。
图4-7添加模型类
点击“类”菜单项后,会弹出“添加新项”对话框,其中类名命名为“电影”,如图4-8所示。
图4-8在“添加新项目”对话框中命名类
然后单击Add按钮,注意在解决方案资源管理器的Models文件夹下添加了一个Movie.cs类定义文件,并且该文件是打开的,如图4-9所示。
图4-9 Movie.cs类定义文件已添加并打开。
将以下五个属性附加到Movie.cs文件中。
公开课电影
public int ID { get设置;}
公共字符串标题{ get设置;}
公共日期时间发布日期{ get设置;}
公共字符串类型{ get设置;}
公共小数价格{ get设置;}
我们将使用Movie类来表示数据库中的电影。Movie对象的每个实例对应于数据表中的一行,Movie类中的每个属性映射到数据表的每一列。
在同一个Movie.cs文件中,追加MovieDBContext类,如下所示。
公共类movied context:db context
public DbSet Movie Movies { get设置;}
movieDBContext类表示实体框架中电影数据库的上下文对象,用于处理数据访问和更新。MovieDBContext对象继承了实体框架中的DBContext基类。要引用DbContext类,需要将下面显示的using语句附加到Movie.cs文件的文件头。
使用系统。数据。实体;
完整的Movie.cs文件中的代码如清单4-1所示。
清单4-1完整的Movie.cs文件
使用系统;
使用系统。数据。实体;
命名空间MvcMovie。模型
公开课电影
public int ID { get设置;}
公共字符串标题{ get设置;}
公共日期时间发布日期{ get设置;}
公共字符串类型{ get设置;}
公共小数价格{ get设置;}
公共类movied context:db context
public DbSet Movie Movies { get设置;}
如果您想从数据库中访问数据,必须编写如上所示的代码。在下一节中,我们将创建一个新的MoviesController类来显示数据库中的数据,并允许用户创建一个新的电影列表。