samesite


【译】MVC3 20个秘方-(2)通过脚手架自动生成controller和view ----代码先行/数据库先行

 

场景
你要通过你的网站管理动态内容

解决方案

通过使用脚手架自动生成一个controller和多个views 允许用户Create, Read, Update, and Delete(CRUD)数据。通过EntityFramework 的 code-first(代码先行) and database-first (数据库先行)方法。

讨论

在用脚手架搭建contorller和view之前,一个model和DBContext需要被创建。它将定义model存了什么类型的数据。(这是代码先行的方法)

在接下来的例子里。创建的2个类将提供管理一个图书列表的能力。

第一个类包含图书数据的定义,将保存在SQL Express database.

第二个类包含DBContext,它创建book class 的DbSet。

创建model,右键单击model 文件夹。选择添加->class。在filename输入:Book.cs.并且用以下代码替换掉生成的代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
namespace MvcApplication.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 model 和BookDBContext。我们就可以使用脚手架来搭建controller和view了。

作为开始,右键单击Controller文件夹。并且选择添加->controller

如下图:

 

依照上图选择模板 :using EntityFramework。

Modelclass 选择刚才我们创建的Book。

DataContext 选择我们的BookDBContext。并且点击“Add”。

这时候我们会发现脚手架已经帮我们创建了一个BookController。发现里边的action都已经帮我们写好了。

译者附:下图是我访问localhost/book/index 创建了一本新书。

我们可以方便的进行增删查改。是不是很方便?

 

Entity Framework 同样提供能力去构建controller和view 通过一种不同的方法。Database-First 数据库先行。这种方法可以利用现有的数据库生成model。

在大型项目中,在独立的基础上合理运用资源是相当普遍的。一个优秀的前端工程师在数据库设计方面不一定也是一个专家。所以,需要一个DB专家来设计数据库。

在下一个例子里,我们要设计一个数据库先行的model。

在model文件夹点击右键。New->item 。在右边的列表选择ADO.NET实体数据库模型。

命名为BookDBFirstModel.edmx.

现在,是时候建立数据库连接了。

1.选择从数据库生成

2. 点击新建连接按钮

3.默认选择数据源:Microsoft SQLServer (Sql client)

4.服务器名:.\SQLEXPRESS

5. 在数据库名里选择MVC自动为上一个事例生成的MvcApplication.Models.BookDBContext。点击确定。

在”将web.config中的实体连接设置另存为“bookEntities”。

选择在数据模型中包含表,视图,存储过程。点击完成。

 

现在再来看看我们的model文件夹。多了一个BookDBFirstModel.edmx实体。

在使用脚手架之前一定要编译一下解决方案。

右键单击controller文件夹。添加 ,如下图:

 

Model Class 就填写 Entity Framework 生成的Books。

而Datacontext 则选择刚才我们设定的实体连接设置bookEntities”。

同样创建成功了一个新的controller :BController。这是由Database先行的。

 

本人做了一个小demo。需要的朋友可以直接点击下载查看。

另请参阅

ADO.NET Entity Framework Overview

posted @ 2011-11-22 18:22  技术弟弟  阅读(4551)  评论(8编辑  收藏  举报