【翻译】ASP.NET MVC4 入门(四)添加一个Model
原文链接:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-model
这一小节我们将添加一些类来管理数据库中的电影。这些类将会成为我们的ASP.NET MVC应用中的model部分。
我们将会使用.net framework提供的数据访问技术——众所周知的Entity Framework来定义这些类。Entity Framework(通常简写成EF)支持一种叫做Code First的开发模式。Code First允许我们编写简单的代码来创建model。(这些类被称为POCO类,"plain-old CLR objects",平凡无奇的clr对象)我们可以使用这些类来创建数据库,从而使我们的开发流程整洁快速。
添加Model类
在解决方案资源管理器中,右键单击Models文件夹,选择"Add",然后选择"Class"。
为新建的类命名为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类的实例都对应数据库表中的一行记录,每一个属性都对应该行记录的一个字段。
在同样的文件里添加如下的MovieDBContext类:
public class MovieDBContext : DbContext { public DbSet<Movie> Movies { get; set; } }
MovieDBContext类代表了Entity Framework数据库上下文,用来处理获取、存储和更新Movie对象到数据库的工作。MovieDBContext类派生自Entity Framework提供的DbContext类。
为了使用DbContext和DbSet,我们需要添加相应的命名空间:
using System.Data.Entity;
完整的Movie.cs文件内容如下.
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; } } }
创建一个连接字符串并且使用SQL Server LocalDB
我们创建的MovieDBContext类负责连接到数据库并且处理数据库中记录到Movie对象的映射。你肯定有一个疑问:我们怎样指定这个类要连接的数据库。我们通过在应用程序的Web.config文件添加数据库连接信息来实现。
打开应用程序根路径下的Web.config文件(注意不是Views文件夹下的Web.config)。
为<connectionStrings>元素添加如下内容:
<add name="MovieDBContext" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Movie.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
注:原文中使用的是Visual Studio 2012,使用的数据库是Sql Server LocalDB,我使用的是Visual Studio 2010,使用的数据库是Sql Server Express,如果使用LocalDB的话,原文的连接字符串配置是:
<add name="MovieDBContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" providerName="System.Data.SqlClient" />
注:我们仅仅需要在Web.config文件中添加连接字符串就行了,不需要创建数据库,数据库由Entity Framework负责创建,详情在下一篇文章里介绍。
接下来就让我们创建一个MoviesController类来展示和编辑数据.