EF的开发有几种模式?

EF 有三种工作模式:
EF框架step by step(1)—Database-First
EF框架step by step(2)—Model-First
EF框架step by step(3)—Code-First

通过项目,我们了解到 EF 框架有三种数据持久化的方式,也就是上面我们提到的三种,那么这些方式之间又有什么联系和区别呢?
分别介绍三种方式的联系:
1.Database First 是基于已存在的数据库,利用某些工具(如 VS 提供的EF设计器)创建实体类,数据库对象与实体类的匹配关系等,你也可以手动修改这些自动生成的代码及匹配文件,也就是从一个数据库开始,然后生成实体框架和相应代码。

2.Model First 是先利用某些工具(如VS提供的 EF 设计器)设计出可视化的实体数据模型及他们之间的关系,然后再根据这些实体、关系去生成数据库对象及相关代码。

3.Code First 这种当时需要先写一些代码,如实体对象、数据关系等,然后根据已有的代码描述,自动创建数据对象,但其实这种方法与 Model Fist 是非常类似的,我们自己写的代码,其实就是用代码表示实体模型,而 Model First 是用可视化的方式描述了实体模型。
而 Code First 可分为:
3.1 Code First(New Database):在代码中定义类和映射关系并通过 model 生成数据库,使用迁移基数更新数据库
3.2 Code First(Existing Database):在代码中定义类和映射关系,给逆向工程提供工具

下面分析着三种方式的缺点:
1.Database First 明显性能会差点,但是它很适合初学者,或者是比较急的小型项目,还有一点,我们在做项目的时候不容易体会到它的好处,但如果做数据库结构比较成熟稳定的产品时,我们可以很轻松的使用数据库生成实体模型,从而实现快速开发。

2.Model First 模式有点是在开发人员能够在模型设计完成后,可以使用 VS等工具快速生成数据库脚本,缺点是设计模型时完全了解数据库的结构,在模型中手动添加表关系,并且生成的脚本有点不简介。

3.Code First 的有点是性能比较好,且代码较少冗余,不过它的缺点也有很多,由于都是代码编写的,比如更新数据库。

你可能感兴趣的:(Entity,FrameWork)