首页 > 代码库 > MVC和EF中的 Model First 和 Code First

MVC和EF中的 Model First 和 Code First

准备:先引入MVC和EF的dll包

*命令方法:打开工具——库程序包管理器——程序包管理器控制台,选择自己的项目

a)     Install-Package EntityFramework -Version 6.1.1

b)     Install-Package Microsoft.AspNet.Mvc -Version 5.2.2

 

一、Code First

 

模式是以代码先行,将Model层写好后反射数据库的方法,这里的数据库需要自己新建,并与model层的字段名完全对应。

技术分享

实现的方法如下:

1.先新建一个实体类,取名Test(与数据库表名一致),添加字段

1   public class Test
2     {
3         public int Id { get; set; }
4         public string Name { get; set; }
5     }

2.建立一个Context类,取名TestContext,调用DbSet来反射数据库的内容

1 public DbSet<Test> Test { get; set; } 

3.在controller层实现对model层数据的调用

1    private TestContext db = new TestContext();
2    public ActionResult Index()
3    {
4         var data =http://www.mamicode.com/ db.Test.ToList();
5         return View(data);
6    }    

4.在View层中调用@Model.Id和@Model.Name。

5.在配置文件里添加数据库连接

1 <connectionStrings>
2     <add name="TestContext" connectionString="Data Source=.\SQLEXPRESS; user id=sa;password=sa;Initial Catalog=test1;Integrated Security=True" providerName="System.Data.SqlClient" />
3 </connectionStrings>

6.在数据库中建立一个Test表,加入Id和Name字段,即可运行测试。

二、Model First

模式是以数据库为基准来编写代码,这里需要先新建一个实体数据模型,根据这个模型将会自动生成数据库文件

技术分享

1.新建数据模型,命名为model1,选择空模型

2.在自己建好的Model1.edmx文件页面中右键,新增,实体,填写实体信息。实体名称对应表名,创建键属性对应表的主键。

创建好后右键点击标量属性在实体模型中添加字段。

技术分享

3.在自己的表上点击“根据模型生成数据库”

技术分享

打开数据库即可看到自己刚刚所建的字段信息。调用数据库的方法百度。

 

利弊:

ModelFirst比较方便,但每次生成时会重新创建数据库,所以如果之前数据库中有数据的话会被清空。

 

DEMO源码下载   

 

MVC和EF中的 Model First 和 Code First