第一章 实体框架入门

什么是 Entity Framework

      什么是Entity Framework?Entity Framework简称EF(固然,搜索引擎不认的),它是一个 ORM框架,就是将 Model 和数据库表关联的一种框架。主要做用是,简化程序员对数据库操做的过程。它会自动根据你的配置(或配置文档、或注解)生成对应的表,会根据调用的方法不一样自动拼接SQL语句(暂时这么认为,由于Hibernate是这样的,因此同理),或者干脆执行SQL语句。固然,既然简化了开发过程,确定要牺牲一些东西的。由于是自动生成的,首先灵活性会降低不少,故而对于数据库设计的要求会比较高;其次,性能上也会牺牲一些。 程序员

     对于EF此类框架的评价就是,不要嫌弃它,由于它自己就是为了快速开发而设计的。若是用不到,或者相信本身的能力,额,能够考虑一下本身搞起。 数据库

Entity Framework开发模式

      EF开发分为Code First(代码优先)、Model First(设计优先)两个方向。固然,若是你要说还有 Database First的话,那就不太对了。由于Database First只能算是Model First的一种特殊状况。至于为何这么说,一方面是由于官方是这么分的,另外一方面等我大体分析一下,你就明白了。 框架

为何选择Code First

     Code First,又叫代码优先(应该不止我一我的这么叫的)。顾名思义,以代码为所有,不使用xml等配置文件,在代码中进行相关配置或者干脆不配置,使用默认的实现方式。 数据库设计

      提及这个来,我最先接触“约定优先”这个概念的时候是在 Asp.net MVC中看到的。“约定优先”这个概念的意思就是框架引擎不依照配置文件/不依照注解,仅仅经过继承关系、标识符、参数列表等信息确认方法或类。也就是说,自定义的类和方法须要遵照必定的命名规范,好比说必须以某串字符结束或开始。这样作就会有一个好处,不熟悉注解或配置的人也能很容易上手,只要仿照官方给定的模板就能开发。固然了,利于新手就不利于体现逼格了,最大的缺点就是若是手滑打错了,那就对不起了。废话这么多意思就是,EF的模型类也参照了这个约定。若是没有特别指定,引擎会根据约定优先进行操做。 性能

      固然,由于“约定优先”灵活性太差,并且不能对某些列进行自定义,因此,EF又开放了两种方式:1) 注释;2) Fluent API。 搜索引擎

     注释(Annotations)

      经过“[ ]”标注该属性或类的特性。关于这个,我不少时候会叫成注解,一方面叫注释的话会容易叫混(不要问我为何),另外一方面这种技术在Java Spring中称为注解。不得不感慨一句,中文博大精深啊。 具体实现会在后续中介绍,这里不说的缘由是我还没细看,我也了解不是不少,好嘛。 spa

      Fluent API

       这个怎么翻译啊?Fluent这里应该是(a.)流利的意思。这个就是,在代码本身定义 类-表,  属性-表字段 ,关系等等。应该属于工厂模式吧。 .net

为何选择Model First

       Model First,又称设计优先。提及来,这个应该是中英文最对不上的翻译了。为何要叫设计优先呢,由于这种方式采用的是配置优先,依据配置文件解析模型层。由于这个配置文件至关复杂,曾经花了一下午啥都没看懂。对此,VS有一个图形化设计器,经过“拖拖拖”就能搞定模型层、配置文件、数据库表 这三者的建立和对应,就像是一我的经过画图设计出了一个数据库,因此就叫设计优先。 翻译

      Database First和Model First的关系

     Database First说的就是Model First中根据已有数据库VS自动生成模型类或开发人员自定义模型类这种状况。 设计

注:以上内容只是个人浅显之见,仅供参考。并且可能会随着我对EF框架的熟悉会进行修改。提及EF框架来,这是一个很棒的框架,开发成本很低,并且灵活性也不差。

相关文章
相关标签/搜索