添加模型 (C#)

作者 :Rick Anderson

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

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

本主题随附了一个带有 C# 源代码的 Visual Web 开发人员项目。 下载 C# 版本。 如果首选 Visual Basic,请切换到本教程的 Visual Basic 版本

添加模型

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

你将使用称为实体框架的.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 电影数据库上下文,该上下文处理数据库中的类实例的提取、存储和更新MovieMovieDBContext派生自DbContext实体框架提供的基类。 有关 和 DbSet的详细信息DbContext,请参阅 Entity Framework 的生产力改进

为了能够引用 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 类,该类可用于显示电影数据并允许用户创建新的电影列表。