Entity Framework 4.1/4.3 之一 (概念篇)

Entity Framework 4.1/4.3 之一 (概念篇)

前序:

      大家好,我都想死你们了。因为我想写个Entity Framework 系列的文章,所以在之一这里我写了下前序,一方面讲一下我写系列文章的出发点,二方面讲一下写的思路。很长时间没有在博客园上发表文章了,多数时间在充当看客。有深度,有广度,有吸引度,有重点,这些都是我喜欢博客园的原因。

 

      1、出发点:我用过 .Net Framework 3.5 中的Entity Framework(本文中我们称其为Entity Framework 3.5)。

          当时用起来的感觉相当好,开发起来的效率提高了,开发人员关注点从数据库转移到了表对象(即Entity Framework 3.5 的数据实体,是对数据库表的对象映射),但不得不说,当时的Entity Framework 3.5还是初级产品,存在许多不足。这些不足很多在Entity Framework 4.1 中得到了改善。由于Entity Framework 很好的体现了ORM的思想,非常强大并且越来越灵活,所以我对Entity Framework 4.1 充满信心。这也是写本文的出发点。

         

          补充:网上已经有很多这样的系列文章,我写这个系列的最重要的出发点也是做为一段学习的总结。

 

      2、思路:系列文章中我会从概念入手,然后植入实例,并且会穿插Entity Framework 4.1 相对于 Entity Framework 3.5 的改进行和这些改进的优势。

 

正文:

      提示:大家千万别纠结在这些充斥着大量英文单词及英语缩写的概念上,您先做个了解即可。在系列文章讲完后,这些该死的概念也就自然而然的理解了。

有时候概念看得抑郁的时候,大可说声 “Fuck” 释怀一下。 

 

      概念

      1、Entity Framework: Entity Framework 的全称是 ADO.NET Entity Framework, 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。

           ADO.NET Entity Framework 以 Entity Data Model (EDM) 为主,将数据逻辑层切分为三块,分别为 Conceptual Schema, Mapping Schema 与 Storage Schema 三层,其上还有 Entity Client,Object Context 以及 LINQ 可以使用。

           (1)、Conceptual Schema:定义概念模型(.csdl)。

           (2)、Mapping Schema:定义存储模型与概念模型之间的映射(.msl)。

           (3)、Storage Schema:定义存储模型(又称逻辑模型)。

 

    2、Code Frist

         Code Frist 是代码先行的意思,什么是代码先行呢,这个思想在Entity Framework 4.1  中有很好的体现。即先编写业务程序,后生成数据库及各种数据表。不过我自己还是习惯于先建好数据库及数据表。然后在与Entity Framework 做映射。我个人觉得这种方式比较靠谱。

 

   3、Poco

        Poco是Entity Framework 4.0 中引入的,叫简单传统CLR对象(Plain Old CLR Oject/POCO)。这样做的好处是实体对象可以独立于Entity Framework 而存在。(这里可能大家不明白,没关系,千万别钻牛角尖,有个念相就是,后面你就会恍然大悟)。

        这种独立可以让Entity Framework 更好的支持测试驱动开发和领域驱动开发。

        其实POCO的思想是从Java中引入的,说句不好听的,C#中好多好的理念多是从Java中引入的,在此我表示中立。你愿意的话,可以查POJO

 

   4LINQ to Entities

     提供语言集成查询 (LINQ) 支持用于查询在概念模型中定义的实体类型。

 

  5、ObjectContext

     网上关于ObjectContext的定义都比较字多,看起来想吐血。我来大话一下,ObjectContext是Entity Framework中非常重要的一个类库,我们就把它理解成类库,它提供了许许多多的方法,用来支持我们对Entity的操作。意思就是,微软给我们写了一个方法库,咱调用即可。

 

  6、DBContext

     DBContext是在Entity Framework4.1中引入的,它与ObjectContext作用相似,有人问,那作用相似为什么要引入DBContext呢?是啊,我也想问这个问题,微软件给我的解释是DBContext是一个轻量级的,相对于ObjectContext而言DBContext更加的轻便实用而且灵活。具体这些优点的体现,我会在后续的文章中一一表现。

 

   7、博客园中有这方面的介绍,网址是http://kb.cnblogs.com/zt/ef/ 非常不错,与大家分享

 

尾续:

      这里没有写Entity Framework的优点,为什么呢,因为我想通过事实来说话,来证明它的优点和优势。用事实来说话,我不是今日说法,我是今日之说Entity Framework。

  

  好了,基础的概念介绍完毕,您先别急着记忆,我的意见是这篇您只做个理解,后续的文章中会让这些定义暧时间真相大白。

   

      谢谢大家百忙之中抽时间观赏,发自肺腑的感谢。有写的不好的地方请大家不吝指较,小弟虚心接受。

 

百灵注:本文版权由百灵和博客园共同所有,转载请注明出处。
助人等于自助!  mbailing@163.com

posted @ 2012-06-08 11:47  jerry-Tom  阅读(4271)  评论(15编辑  收藏  举报