Database First
Database First就是先建数据库或使用已有的数据库。然后在vs中添加ADO.Net实体数据模型,设置连接并且选择需要的数据库和表。它是以数据库设计为基础的,并根据数据库自动生成实体数据模型,从而驱动整个开发流程。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。这种模式的好处是使用简单,容易上手。比较适合于采用已经存在的数据库进行开发。既通过简单的方式实现了,又重用了数据库。
第一步:创建ADO.NET实体数据模型
第二步:选择从数据库模型生成并点击下一步
第三步:选择数据连接并点击下一步
第四步:选择框架版本并点击下一步
第五步:选择数据库对象和设置,可修改模型命名空间,点击完成,生成edmx文件
优点:Database First可以自动深处生成上下文DBcontext,使用简单,容易上手,适合于需要快速开发的项目。
缺点:这种方式明显性能较差。同样,强大的微软也提供了一种解决方案,就是从数据库更新实体,详情请点击这篇博客EF映射——从数据库更新实体。
Model First
Model First开发模式是指从建立实体数据模型入手,并依据模型生成数据库,从而驱动整个开发流程。该模式也就是业界流行的面向领域的编程模式,它的优点在于程序员可以用与设计建模相同的思维来进行代码编写,更符合面向对象的思想。ModelFirst与Database First是互逆的,但最终都是输出数据库和实体数据模型。但是当实体需要改变的时候,我们要重新在设计器中修改实体,然后重新生成SQL脚本,更新数据库,这个时候数据库中原有的数据就会被清空。为了达到数据备份的作用,我们还需要提前对数据库进行备份,这又增加了工作量。
Model First跟DataBase First差不多,在选择模型内容的时候选择“空模型”即可,在edmx文件中右键创建实体、关联,在属性中科院修改类型等。
优点:开发人员可以再模型设计完成之后,利用vs等工具快速生成数据库脚本。
缺点:设计模型时完全了解数据库的结构,在模型中手动添加表关系,并且生成的脚本有点不简洁。
Code First
Code First模式自认为是手动创建POCO模型,数据层DbContext及映射关系,不存在ADO.Net实体数据模型edmx,通过Database.SetInitializer生成数据库(有四种策略),非常灵活。但是当实体类很多的时候,每一个实体类都需要我们手动编写代码,这将会是一件非常庞大的工程。但是Code First的好处绝对是比坏处大的。
优点:性能比较好,且代码较少冗余。
缺点:全部都是代码编写,对程序员的要求较高。
标签:实体,框架,数据库,EF,生成,三种,模型,数据模型,First From: https://www.cnblogs.com/cloudcmm/p/17252287.html