EF框架之三种模式

摘要:
在使用EF之前,您必须对EF有一个宏观的了解。要学习任何技术,你必须像门卫一样问几个问题。首先,是谁?除了生成实体模型和自跟踪实现模型之外,还支持轻量级DbContext。CodeFirst手动创建POCO模型、数据层DbContext和映射关系,并通过database.SetInitializer生成数据库。此方法很灵活,但代码工作量更大。因此,我们选择ModelFirst进行开发

       使用EF之前必须要对EF有个宏观的了解.学习任何一种技术都要像门卫一样问几个问题.

      第一,它是谁?

      第二,从哪里来?

      第三,到哪里去?

 

     默念一遍:不谋全局者,不足谋一域.

 

        

 

        Entity FrameworkORMapping的一种具体实现,ORMapping又是什么呢?ORM--ObjectRelation Mapping,即对象关系映射框架/数据持久化框架,是根据实体对象操作数据表中数据的一种面向对象的操作框架.

 

       其实Entity Framework的底层也是调用Ado.Net,它是更高层次的封装.作为数据访问的技术,EntityFramework的设计有高扩展性,这一点可体现在其映射定义的灵活性.简单地说,使用Entity Framework可以充分地定义与数据库表映射的实体,这个实体可以直接用于业务逻辑层或作为服务的数据契约.使用EF,可以将实体类的设计工作完全放在EDM的设计过程中,而不需要手工写那些大同小异的代码,令人欣喜的是这个实体模型可以在运行时修改并生效,做到一改全改.我们开发时也不用再频繁地与数据库打交道,我们操作实体模型的同时EF框架自动完成了对数据库的操作.

 

        对于一种新了解的技术,了解宏观是必须的,但是要想尽快熟悉还是要做一做的,写一写demo.这次底层设计一直在讨论教育云平台的实体部分使用哪种模式,我们知道网络上特别流行Codefist,下面就来说一说EF框架划分的模式:

  • DataBase First
  • Model First
  • CodeFirst

  DataBase First传统的表驱动方式创建EDM,然后通过EDM生成模型和数据层代码。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。

  Model First先创建EDM模型,再生成DDL数据库脚本和模型和数据层代码。除生成实体模型和自跟踪实现模型,支持生成轻型DbContext。

  Code First手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,这种方式较灵活,但是代码工作较多。

  虽然Code First灵活,但是我们不可能手工去写大量的POCO类和映射关系。所以我们此次开发选择Model First.

免责声明:文章转载自《EF框架之三种模式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C# WINFORM 编程中,选择**文件夹**而不是文件的方法(转)windows安装zabbix agent下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C# SQLite 创建数据库的方法增删查改语法和命令

SQLite介绍   SQLite是一个开源、免费的小型RDBMS(关系型数据库),能独立运行、无服务器、零配置、支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准。 SQLite数据库官方主页:http://www.sqlite.org/index.html   cmd下sqlite的使用网   1:选择下载对应自己系统的sqlite.3exe...

JAVA入门到精通-第64讲-sql server备份恢复

  邮件服务器备份:   c 创建  查询  更新  删除  /  增删改查;   分离:把数据库aaa暂时离开数据库,可以分离,附加到另外地方去; .mdf  和  .ldf 这两个文件   所有任务---分离数据库     附加数据库:   ---备份和恢复 备份数据库不会影响原数据库的使用;   备份数据库会形成bac...

一些基本的Oracle命令

一些基本的Oracle命令基本命令 连接数据库 C:>SQLPLUS /NOLOG SQL>CONN / AS SYSDBA 1.Oracle 关闭 SQL>SHUTDOWN (ABORT|IMMEDIATE|NORMAL) 2.Oracle 启动 SQL>STARTUP (REMOUNT|MOUNT|OPENT) 3.SQL>...

Redis常见问题及处理办法(转)

Redis使用过程中要注意的事项 Redis使用起来很简单,但是在实际应用过程中,一定会碰到一些比较麻烦的问题,常见的问题有 redis和数据库数据的一致性 缓存雪崩 缓存穿透 热点数据发现 下面逐一来分析这些问题的原理及解决方案。 数据一致性 针对读多写少的高并发场景,我们可以使用缓存来提升查询速度。当我们使用Redis作为缓存的时候,一般流程如图...

数据库表设计的三范式

数据库范式1NF 2NF 3NF BCNF(实例) 设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范 式。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式 (3NF)、第四范...

Mysql运维管理-Mysql增量备份及分库分表备份数据恢复实战12

1. MySQL数据库的备份与恢复 1.1 Mysqldump的工作原理? 利用mysqldump命令备份的过程,实际上就是把数据从mysql库里以逻辑的sql语句的形式直接输出或者生成备份的文件的过程。 备份的数据过滤注释都是sql语句,结果如下: [root@localhost opt]# egrep -v "#|*|--|^$" /opt/mysql...