添加模型 (C#)

作者: 里克·安德森

本教程将介绍如何使用 Microsoft Visual Web Developer 2010 Express Service Pack 1 生成 ASP.NET MVC Web 应用程序的基本知识,这是 visual Studio 的免费 Microsoft版本。 在开始之前,请确保已安装下面列出的先决条件。 可以通过单击以下链接来安装所有这些组件: Web 平台安装程序。 或者,可使用以下链接单独安装各个必备软件:

如果使用 Visual Studio 2010 而不是 Visual Web Developer 2010,请单击以下链接安装必备组件: Visual Studio 2010 先决条件

带有 C# 源代码的 Visual Web 开发人员项目随本主题一起提供。 下载 C# 版本。 如果更喜欢 Visual Basic,请切换到 本教程的 Visual Basic 版本

添加模型

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

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

添加模型类

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

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

将类命名为“Movie”。

CreateMovieClass

将以下五个属性添加到 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 电影数据库上下文,该上下文处理数据库中的提取、存储和更新 Movie 类实例。 派 MovieDBContext 生自 DbContext Entity Framework 提供的基类。 有关详细信息 DbContextDbSet请参阅 实体框架的工作效率改进。

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

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 Compact

MovieDBContext创建的类处理连接到数据库的任务,并将对象映射到Movie数据库记录。 不过,你可能会问的一个问题是如何指定要连接到的数据库。 为此,需要在应用程序的 Web.config 文件中添加连接信息

打开应用程序根 Web.config 文件。 (不是Views 文件夹中的 Web.config 文件。下图显示了这两个 Web.config 文件;打开以红色圆圈的 Web.config 文件。

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

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

<add name="MovieDBContext" 
         connectionString="Data Source=|DataDirectory|Movies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>

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

<configuration>
  <connectionStrings>
    <add name="MovieDBContext" 
         connectionString="Data Source=|DataDirectory|Movies.sdf" 
         providerName="System.Data.SqlServerCe.4.0"/>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

此少量的代码和 XML 是为了在数据库中表示和存储电影数据而需要编写的所有内容。

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