在本节中我们将追加一些类来管理数据库中的电影。这些类将成为我们的MVC应用程序中的“模型”部分。

我们将使用一个.NET Framework的被称之为“Entity Framework”的数据访问技术来定义这些模型类,并使用这些类来进行操作。Entity Framework(通常被简称为“EF”)支持一个被称之为“code-first”的开发范例。Code-first允许你通过书写一些简单的类来创建模型对象。你可以通过访问这些类的方式来访问数据库,这是一种非常方便快捷的开发模式。

4.1  利用NuGet来安装EFCodeFirst

我们可以利用NuGet包管理器(安装ASP.NET MVC3时会自动安装)来把EFCodeFirst类库添加到我们的MvcMovie工程中。这个类库使得我们可以直接使用code-first。点击“工具”菜单下的“Library Package Manager”子菜单下的“Add Library Package Reference”菜单选项,如图4-1所示。

图4-1 使用NuGet包管理器

点击“Add Library Package Reference”菜单选项后,将会弹出一个对话框,标题为“Add Library Package Reference”,如图4-2所示。

图4-2 “Add Library Package Reference”对话框

默认状态下,左边的“All”选项处于选择状态。因为还没有安装任何包,所以右边面板中显示“找不到任何项”。点击左边面板中的“online”选项,NuGet包管理器将会在服务器上检索所有当前能够获取的包,如图4-3所示。

图4-3 NuGet包管理器正在检索包信息

服务器上有几百个当前能够获取的包,现在我们只关注EFCodeFirst包。在右上角的搜索输入框中输入“EFCode”。在检索结果中,选择EFCodeFirst包,并且点击Install按钮安装包,如图4-4所示。

图4-4 选择EFCodeFirst包并安装

点击了install按钮后,会弹出一个接受许可证窗口,如图4-5所示,在这个窗口中必须要点击“I Accept”按钮,接受许可证条款,安装才能继续进行。

图4-5 接受许可证窗口

安装完毕后,点击close按钮。我们的MvcMovie工程中会自动加载EntityFramework程序集,其中包含了EFCodeFirst类库。

图4-6 安装完毕后EntityFramework程序集被自动加载

4.2  添加模型类

在解决方案资源管理器中,鼠标右击Models文件夹,点击“添加”菜单下的“类”,如图4-7所示。

图4-7 添加模型类

点击“类”菜单项后,会弹出“添加新项”对话框,在该对话框中将类名命名为“Movie”,如图4-8所示。

图4-8 在“添加新项”对话框中为类命名

然后点击添加按钮,观察解决方案资源管理器中,Models文件夹下添加了一个Movie.cs类定义文件,并且该文件呈打开状态,如图4-9所示。

图4-9 Movie.cs类定义文件已被添加并呈打开状态

在Movie.cs文件中追加如下所示的五个属性。

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对象的实例对应于数据表中的一行,Movie类中的每一个属性被映射到数据表的每一列。

在同一个Movie.cs文件中,追加如下所示的MovieDBContext类。

public class MovieDBContext : DbContext

{

    public DbSet<Movie> Movies { get; set; }

}

MovieDBContext类代表了Entity Framework中的movie数据库的上下文对象,用来处理数据的存取与更新。MovieDBContext对象继承了Entity Framework中的DbContext基础类。为了能够引用DbContext类,你需要在Movie.cs文件的头部追加如下所示的using语句。

using System.Data.Entity;

完整的Movie.cs文件中的代码如代码清单4-1所示。

代码清单4-1 完整的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; }

}

}

如果要从数据库中存取数据,类似以上所示的代码是必须要写的。在下一节中,我们将要创建一个新的MoviesController类,用来显示数据库中的数据,并且允许用户创建一个新的movie(电影)的列表。

ASP.NET MVC3 快速入门-第四节 添加一个模型(转)相关推荐

  1. ASP.NET MVC3 快速入门

    第一节 概述    (2011-02-23 20:57:18)  转载 标签: web应用程序 分类: ASP.NETMVC3 1.1  本教程的学习内容     在本教程中,你将学会如下内容: •  ...

  2. ASP.NET MVC3 快速入门--第二节 添加一个控制器

    MVC的全称为model-view-controller(模型-视图-控制器).MVC是一种开发应用程序的模式,这个模式已经具有了很好的框架架构,并且十分容易维护.使用MVC开发出来的应用程序一般包括 ...

  3. C++网络编程快速入门(四):EPOLL模型使用

    目录 基本使用方法 step1:创建epollfd step2:将fd绑定到epollfd step3:调用epoll_wait检测事件 epoll_wait与poll.select区别所在 水平触发 ...

  4. LayIM 3.9.1与ASP.NET SignalR实现Web聊天室快速入门(四)之ASP.NET SignalR核心功能介绍

    前言 本系列文章特点:使用ASP.NET SignalR和LayIM快速入门对接,实现一对一聊天,群聊,添加聊天群组,查找聊天记录等功能.源代码不包含LayIM的源代码,因为官方并没开源属于收费资源, ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. [MVC.NET] Asp.Net MVC3 简单入门第一季

    转自:http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2208042.html 初识Asp.Net MVC2.0 初识Asp.Net MVC2 ...

  7. Asp.net MVC3.0 入门指南 6 审视编辑方法和视图

    审视编辑方法和视图 在这一节中,您将审视movie控制器生成的响应方法和视图.然后您将添加 一个自定义搜索页面. 运行程序并通过在URL追加/Moives浏览movie控制器.把鼠标悬停在Edit 链 ...

  8. .net mvc html访问数据库,【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6) - 三生石上...

    图挂了的说明: 我是在Word中写的本系列文章,然后转成的HTML,所以图片都存在于 fineui.com 服务器,由于临时访问量太多,服务器喘不过气了.... 你可以稍后访问,实在是抱歉...... ...

  9. 【笔记目录1】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 1 2 下一页  任务50:Identity MVC:DbContextSeed初始化 GASA 2019-03-02 14:09 阅读:16 ...

最新文章

  1. 微信小程序 - 调用腾讯地图插件
  2. iOS 获取当前设备型号iPhone7/iPhone7P
  3. IE兼容CSS3圆角border-radius,box-shadow,text-shadow的方法
  4. Python学习笔记010——作用域
  5. 《软件工程进阶》-疑难(作业)
  6. Django_404_403_500页面处理
  7. SpringMVC集成shrio框架
  8. pycharm双击无反应
  9. android 手机内存清理,教你彻底清理手机内存的最佳方法,只需一招
  10. laravel 房源
  11. 使用pygame制作贪吃蛇小游戏
  12. 网络环路检测定位技术的发展过程
  13. python的“end=”介绍
  14. 怎么用xmind做读书笔记
  15. 现代微型计算机的字长,计算机的字长
  16. b2b2c商城系统开发
  17. margin带一个、二个、三个、四个参数不同的含义。
  18. 时空之轮Android手柄,时空之轮图文完整攻略(超时空之轮(ChronoTrigger)最详细攻略图文详解)...
  19. PostgreSQL备份恢复之pgbackRest恢复
  20. 如果今天是生命里的最后一天你想做点啥

热门文章

  1. centos6.5 install cobbler
  2. 1424 零树 (树形DP)
  3. 图两点间的最短路径,所有路径算法C语言实现
  4. CI中写原生SQL(封装查询)
  5. Linux下关于安全的一些小技巧大问题(图文)
  6. 关于CDC功能的答疑
  7. monkey基本命令及脚本编写
  8. Linux系统配置及服务管理_第03章用户管理
  9. tornado和subprocess实现程序的非堵塞异步处理
  10. 如何优雅的处理异常(java)