准备:先引入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(与数据库表名一致),添加字段

   public class Test
{
public int Id { get; set; }
public string Name { get; set; }
}

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

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

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

    private TestContext db = new TestContext();
public ActionResult Index()
{
var data = db.Test.ToList();
return View(data);
}

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

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

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

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

二、Model First

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

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

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

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

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

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

利弊:

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

DEMO源码下载   

MVC和EF中的 Model First 和 Code First的更多相关文章

  1. 1、MVC和EF中的 Model First 和 Code First

    准备:先引入MVC和EF的dll包 *命令方法:打开工具——库程序包管理器——程序包管理器控制台,选择自己的项目 a)     Install-Package EntityFramework -Ver ...

  2. 如何在ASP.NET MVC和EF中使用AngularJS

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) AngularJS作为一个越来越流行的前端框架,在使用ASP.NET MVC和实体框架开发W ...

  3. 1.【使用EF Code-First方式和Fluent API来探讨EF中的关系】

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/relationship-in-entity-framework-using-code-firs ...

  4. 2.EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...

  5. EF中 Code-First 方式的数据库迁移

    原文链接:http://www.c-sharpcorner.com/UploadFile/3d39b4/code-first-migrations-with-entity-framework/ 系列目 ...

  6. ASP.NET MVC和EF集成AngularJS开发

    参考资料: 如何在ASP.NET MVC和EF中使用AngularJS AngularJS+ASP.NET MVC+SignalR实现消息推送 [AngularJs + ASP.NET MVC]使用A ...

  7. easyui datagrid 禁止选中行 EF的增删改查(转载) C# 获取用户IP地址(转载) MVC EF 执行SQL语句(转载) 在EF中执行SQL语句(转载) EF中使用SQL语句或存储过程 .net MVC使用Session验证用户登录 PowerDesigner 参照完整性约束(转载)

    easyui datagrid 禁止选中行   没有找到可以直接禁止的属性,但是找到两个间接禁止的方式. 方式一: //onClickRow: function (rowIndex, rowData) ...

  8. ASP.NET MVC中默认Model Binder绑定Action参数为List、Dictionary等集合的实例

    在实际的ASP.NET mvc项目开发中,有时会遇到一个参数是一个List.Dictionary等集合类型的情况,默认的情况ASP.NET MVC框架是怎么为我们绑定ASP.NET MVC的Actio ...

  9. ASP.NET MVC中对Model进行分步验证的解决方法

    原文:ASP.NET MVC中对Model进行分步验证的解决方法 在我之前的文章:ASP.NET MVC2.0结合WF4.0实现用户多步注册流程中将一个用户的注册分成了四步,而这四个步骤都是在完善一个 ...

随机推荐

  1. Spring-2-A Magic Grid(SPOJ AMR11A)解题报告及测试数据

    Magic Grid Time Limit:336MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Description Tha ...

  2. (转载)sql注入实战 mysql篇

    出现的关键名词有: UNION  SELECT   load_file   hex 为了方便说明我们先创建两个表:hehe和heihei,很明显它们一个拥有2列属性,一个拥有3列属性 ======== ...

  3. java的接口为什么不能实例化

    java的接口为什么不能实例化呢?首先,我们需要明白实例化的含义.实例化实际意义是在jvm的堆中开辟出一块内存空间,比如Student s = new Student();此处声明Student对象s ...

  4. $《Deep Work》思维导图读书笔记

    深度思考和深度工作能力已经成为当今如何应对知识爆炸.信息碎片化时代的一项重要技能,也是克服信息焦虑症的一剂良方.<Deep Work>这本书正是讲述如何一步步进入你的深度工作模式.

  5. 【Beginning Python】抽象(未完)

    [懒惰即是美德] 抽象意味着良好的可读性:说明你在努力做什么,而不是给出你正在如何做的细节. [抽象和结构] 程序应该是非常抽象的,就像“下载网页.计算频率.打印每个单词的频率”一样易懂.翻译成程序就 ...

  6. Python面试题之Python中type和object的关系

    知乎上看到的提问: 两个是互为实例的关系,但不是互为子类的关系,只有type是object的子类,反之则不成立. 大牛说两者是蛋生鸡鸡生蛋的关系,但我还是不明白,有懂的麻烦解释一下, 希望不要给出外文 ...

  7. 20145307第七周JAVA学习报告

    20145307<Java程序设计>第七周学习总结 教材学习内容总结 Lambda Lambda语法概述: Arrays的sort()方法可以用来排序,在使用sort()时,需要操作jav ...

  8. DVWA安装

    DVWA安装: 启动xampp下的apache中间件和mysql 将dvwa放到xampp下的htdocs目录下 在浏览器输入http://127.0.0.1/dvwa 即可使用啦! 还有owasp的 ...

  9. GCC精彩之旅

    在为Linux开发应用程序时,绝大多数情况下使用的都是C语言,因此几乎每一位Linux程序员面临的首要问题都是如何灵活运用C编译器.目前Linux下最常用的C语言编译器是GCC(GNU Compile ...

  10. ContOs 将SpringBoot的jar制作成系统服务

    将jar包上传到  你想要的目录下 如 /java/service/demo.jar 进入 /etc/systemd/system 目录下 新建  demo.service 内容如下 -------- ...