【ITOO】EF框架之三种模式大PK

             上篇文章主要说了一下ORM思想以及体现在这种思想的EF框架的一些基本的东西。具体的EF还没有深入的说明。这篇博客主要写关于EF框架的三种模式。

             上一篇博客也说了EF是实现ORM思想的一种框架  跟踪实体的变化,根据映射关系以及实体的变化生成相应的SQL脚本,并执行到数据库中去,很好的把实体的变化映射到数据库表的变化。它是作为数据访问的技术,使用EF之后,可以将实体类的设计工作完全放在EDM的设计过程中,而不需要手工写那些类似的代码,这个实体模型可以在运行时修改并生效。我们的开发不用频繁的与数据库打交道。


             EF有三种模式

          分别是DataBase FirstModel FirstCode First


             Database First就是首先建立好数据库,或者存在现成的数据库也可以。然后在vs中添加ADO.Net实体数据模型,找到需要的数据库和表。它是以数据库设计为基础的,并根据数据库自动生成实体数据模型,从而驱动整个开发流程。除生成实体模型和自跟踪实现模型,还支持生成轻型DbContext。这种模式的好处是使用简单,容易上手。比较适合于采用已经存在的数据库进行开发。既通过简单的方式实现了,又重用了数据库。

 

            ModelFirst开发模式是指从建立实体数据模型入手,并依据模型生成数据库,从而驱动整个开发流程。该模式也就是业界流行的面向领域的编程模式,它的优点在于,程序员可以用与设计建模相同的思维来进行代码编写,更符合面向对象的思想。ModelFirst与Database First是互逆的,但最终都是输出数据库和实体数据模型。但是当实体需要改变的时候,我们要重新在设计器中修改实体,然后重新生成SQL脚本,更新数据库,这个时候数据库中原有的数据就会被清空。为了达到数据备份的作用,我们还需要提前对数据库进行备份,这又增加了工作量。


             Code Only模式自认为是一种很神奇的模式,手动创建POCO模型,数据层DbContext及映射关系,通过Database.SetInitializer生成数据库,非常灵活。但是当实体类很多的时候,每一个实体类都需要我们手动编写代码,这将会是一件非常庞大的工程。但是Code Only的好处绝对是比坏处大的,所以,选择哪种方式完全凭借我们自身的实际需求。


总结:

             这篇文章简单的分析了一下EF的三种模式,实现数据的快速访问。其中Database FirstEF最早支持也是最容易上手的一种开发模式,可以复用数据库;Model First是最能体现面向对象思想的一种模式,而且也很容易;Code Only 即是编写代码,这种模式适合于资深的程序员,而且只需要编写代码实体类自动生成方便快速,更易维护,但是对于手动创建,对于太多的实体的时候则不方便,工作较多。所以我们在选择使用EF的三种模式时,根据我们自己的实际需求,选择最适合自己的,对自己的工作效率最有益的。

你可能感兴趣的:(-------【GUAI】)