在本节中您将添加用于在数据库中管理电影的几个类。这些类是ASP.NET MVC应用程序的模型一部分。
你将使用.NET Framework框架下的实体框架Entity Framework来进行数据访问,并与模型类协同工作。实体框架(常简称为EF)支持一种称之为编码先行(Code First)的开发模式。编码先行允许你编写简单的类(简称为POCO类,全称为"plain-old CLR objects."),来创建模型对象。你可以根据您的实体类来创建数据库,这使的开发流程变的干净与快速。
Adding Model Classes
在解决方案资源管理器中,右键单击Models文件夹,选择“添加”,然后选择“类”。
输入类名“Movie”。
在Movie类中添加以下五个属性:
public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } }
我们将使用Movie类作为数据库中的电影数据。 Movie对象的每个实例对应于一个数据库表中的某一行, Movie类的每个属性将映射到表中的一列。
在同一个文件中,添加以下的MovieDBContext类:
在Movie类中添加以下五个属性:
public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } }
MovieDbContext类表示实体框架的电影数据库内容,负责处理数据库中获取,存储和更新电影类的实例。 MovieDbContext继承自Entity Framework提供的基类DbContext。
为了能够引用DbContext和DbSet,你需要在文件的顶部添加以下using语句:
using System.Data.Entity;
接下来,您将构建一个新的MoviesController类,你可以用它来显示影片数据,并允许用户创建新的影片列表。
using System; using System.Data.Entity; namespace MvcMovie.Models { public class Movie { public int ID { get; set; } public string Title { get; set; } public DateTime ReleaseDate { get; set; } public string Genre { get; set; } public decimal Price { get; set; } } public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } } }
Creating a Connection String and Working with SQL Server LocalDB
您创建的moviedbcontext类用自动处理连接数据库并映射对象数据库记录电影的任务。您可能会问一个问题,虽然,是默认使用指定的数据库连接。但一般我们会在web.config文件中加入数据库连接信息。
打开应用程序根web.config文件(不是视图文件夹下的web.config),打开web.config文件如下图红色标记部位。
在Webconfig的文件下<connectionStrings>
节点添加我们的连接字符串
<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
完成后的样子如下图所示
<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true" providerName="System.Data.SqlClient" /> <add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
这个少量的代码中,是您需要表示和存储的电影数据库中的配置信息。
下一步,您会建立一个新的moviescontroller类,您可以使用它来显示的电影数据,并允许用户创建新的电影列表。
备注:如果你已经添加的连接字符串指定的SQL Server Compact数据库,命名为MovieDB.sdf 位于App_Data文件的文件夹下,那么OK。否则请使用如下配置
<add name="MovieDBContext" connectionString="Data Source=.;Initial Catalog=MovieDB;User Id=sa;Password=123;" providerName="System.Data.SqlClient" />