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 = 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比较方便,但每次生成时会重新创建数据库,所以如果之前数据库中有数据的话会被清空。