[翻译]ASP.NET MVC 3 开发的20个秘诀(二)[20 Recipes for Programming MVC 3]:自动生成控制器和视图

[翻译]ASP.NET MVC 3 开发的20个秘诀(二)[20 Recipes for Programming MVC 3]:自动生成控制器和视图 – O2DS – 博客园.

议题

通过您的网站管理动态内容。

解决方案

使用实体框架与数据库绑定,通过Controller以及自动生成的多个视图界面,允许用户创建、读取、更新以及删除(也称为:CRUD)数据。

讨论

在定义控制器和视图之前,需要预先创建模型和DbContext以及数据收集规则(代码优先方法)。在接下来的例子中,将会创建两个类,并实现一个 图书列表管理的功能。第一个类包含书籍信息在SQL Express数据库中存储的数据定义。第二个类将是一个包含Book类型的DbSet对象的DbContext类。创建模型,右键单击Models文件 夹,并选择添加 -> 。在类的文件名写:Book.cs,用下面的代码替换生成的代码:

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

namespace MvcApplication4.Models
{
    public class Book
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public string Isbn { get; set; }
        public string Summary { get; set; }
        public string Author { get; set; }
        public string Thumbnail { get; set; }
        public double Price { get; set; }
        public DateTime Published { get; set; }
    } 

    public class BookDBContext : DbContext
    {
        public DbSet<Book> Books { get; set; }
    }

}

*译者注:保存Book.cs后,必须编译整个项目(快捷键Ctrl+Shift+B)才能继续下面的操作。

创建Book的模型和BookDBContext类,接下来就可以开始完成控制器和视图了。开始,右键单击Controller文件夹,选择“添加控制器”(如图 1-1)。

图例 1-1,创建新的控制器

如图所示,将新建控制器命名为BooksControllers。在模板选项卡中选择“包含读/写操作和视图的控制器(使用 Entity Framework)”。模型类选择Book类,数据上下文类选择之前创建的BookDBContext类。视图选项中的Razor(CSHTML)是默 认选项,所以保持不变。内容输入完毕以后点击“新增”,创建文件。(如图1-2)

图例 1-2,新建文件

Entity Framework可以根据已存在的数据库为控制器创建不同的操作方法和视图。在大型项目中,这些基础内容是分开制作的。比如,一个好的前端Web开发人员可能并不是数据库设计方面的专家。因此,数据库设计需要有专业人员负责。

在接下来的例子中,将会连接先前创建的数据库,并为“Book“表创建相应的实例模型。选择使用旧的应用程序还是创建新的应用程序,这取决于您选择代码优先还是数据库优先。

程序创建后,右键单击Models文件夹,并选择“添加”->“新建项”。在右上角搜索框中键入”实体“,从搜索结果中选择”ADO.NET实体数据模型“。将文件名改为”BookModel.edmx“。现在可以通过向导建立数据库连接:

  1. 选择“从数据库生成”;
  2. 点击“新建连接”按钮;
  3. 在列表中选择Microsoft SQL Server,并点击“继续”;、
  4. 在连接属性对话框的服务器名称中选择你的SQL Express数据库;
  5. 连接后在数据库的下拉框中选择由MVC自动创建的数据库中最后一个表,然后点击“确定”。

* 译者注:请在步骤3的服务器名中输入.\SQLEXPRESS,步骤4中选择的应该是tempdb数据库,不知道是否在之前有前提我没有看到,当然下面所说的“Book”表也是不存在的,但是这个章节的操作有些是行不通的。

点击下一步更新Web.Config中的SQLExpress连接字符串。现在在数据库选择对话框中展开表节点并选择“Book”表。

点击“完成”之后,将会在Models目录下创建新的实体图。在创建控制器之前必须先对解决方案进行编译。项目构建完成,就像先前“代码优先”的例子中做得那样,右键单击控制器文件夹,选择“添加”->”控制器”。

使用这种方法创建的控制器,依然会有“Book”模型类,数据上下文类以及以及包含数据库连接的实体实例。

在未来的秘诀中我们将使用代码优先的方法,手工操作数据库中的表,让更多的注意力集中到MVC本身。

参考信息

ADO.NET Entity Framework Overview

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏