添加模型 (2012)

作者 :Rick Anderson

注意

此处提供了本教程的更新版本,它使用 ASP.NET MVC 5 和 Visual Studio 2013。 它更安全,更易于遵循并演示更多功能。

在本部分中,你将添加一些用于管理数据库中电影的类。 这些类将是 ASP.NET MVC 应用程序的“模型”部分。

你将使用称为实体框架的.NET Framework数据访问技术来定义和使用这些模型类。 实体框架 (通常称为 EF) 支持名为 Code First 的开发范例。 Code First 允许通过编写简单类来创建模型对象。 (这些也称为 POCO 类,来自“普通旧 CLR 对象”。) 然后,可以从类动态创建数据库,从而实现非常干净和快速的开发工作流。

添加模型类

“解决方案资源管理器”中,右键单击“模型”文件夹,选择“添加”,然后选择“”。

显示“解决方案资源管理器”窗口的屏幕截图。在“模型”右键单击菜单中选择“添加”,并在子菜单中选择“类”。

输入 名“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 类:

public class MovieDBContext : DbContext 
{
    public DbSet<Movie> Movies { get; set; } 
}

MovieDBContext 表示 Entity Framework 电影数据库上下文,该上下文处理数据库中的类实例的提取、存储和更新 MovieMovieDBContext派生自 DbContext Entity Framework 提供的基类。

为了能够引用 DbContextDbSet,需要在文件顶部添加以下 using 语句:

using System.Data.Entity;

完整的 Movie.cs 文件如下所示。 (已删除多个不需要的 using 语句。)

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 文件。 (不是“视图”文件夹中的Web.config文件。) 打开红色轮廓的Web.config文件。

显示“解决方案资源管理器”窗口的屏幕截图。Web 点配置以红色圈出。

将以下连接字符串添加到 <connectionStrings>Web.config 文件中的 元素。

<add name="MovieDBContext" 
   connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True" 
   providerName="System.Data.SqlClient" 
/>

以下示例演示添加了新连接字符串 的Web.config 文件的一部分:

<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>

为在数据库中表示和存储电影数据,需要编写少量的代码和 XML。

接下来,你将生成一个新 MoviesController 类,该类可用于显示电影数据,并允许用户创建新的电影列表。