Asp.Net MVC温故而知新【5】- 添加模型

下一个项目使用Asp.Net MVC技术进行开发,以前也用过,好几年没用了,今天没事便找了个教程,复习了一下,是Asp.Net MVC4框架,觉得浅显易懂,便复制收藏了。

在本节中,我们将添加一些管理电影数据库的类,这些类在ASP.NET MVC 应用程序中扮演“Model”的角色。

我们将使用.NET Framework平台上熟知的Entity Framework 数据访问技术来定义和使用这些模型。Entity Framework(简称EF)提供了一种叫做 Code First 的开发范例。Code First 允许你写一些简单的类来创建模型(这些通常被称为POCO类,即“plain old CLR object”)。这些类将会生成数据库,这是一种即简洁又快速的开发流程。

添加 Model 类

在解决方案资源管理器中,右键 Models 文件夹,选择 “添加”>”类”。

图1:添加模型类的菜单

image

输入类名“Movie”。为Movie类添加一下5个属性,完整的Movie类代码如下:

代码清单1:Movie.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

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

我们将使用Movie类代表数据库中的电影。每一个Movie对象将对应数据表中的一行,Movie类的每一个字段映射数据表中的每一列。

在上面的文件中,添加一个MovieDBContext类:

代码清单2:添加了MovieDBContext类后的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; }
    }
}

MovieDBContext 类代表了Entity Framework 中 Movie 类的数据库上下文,用来处理获取、存储和更新数据库中的Movie类的实例。MovieDBContext类继承自Entity Framework中提供的DbContext类。

为了能够引用DbContext 和DbSet,你需要添加System.Data.Entity的引用,代码如下:

代码清单3:添加System.Data.Entity的引用

using System.Data.Entity;

你可以手动添加using语句,或者在红色波浪线上面右键,选择“解析”>”using System.Data.Entity;”。

图2:添加引用

image

注意:一些没用到的using语句已经被移除了。你可以在文件中右键,选择“组织 using”>“移除未使用的 using”,移除未用到的using语句。

图3:移除未用到的using语句菜单

image

我们终于添加了一个模型(MVC中的M)。在下一节中,我们将讲解使用数据库连接字符串。

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.