zoukankan      html  css  js  c++  java
  • Entity Framework 4.1/4.3 之一 (概念篇) jerry

    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

  • 相关阅读:
    elasticsearch 中的Multi Match Query
    activiti 流程部署的各种方式
    elasticsearch 嵌套对象之嵌套类型
    elasticsearch Java High Level REST 相关操作封装
    elasticsearch 字段数据类型
    ubuntu 安装 docker
    elasticsearch 通过HTTP RESTful API 操作数据
    facenet 人脸识别(二)——创建人脸库搭建人脸识别系统
    POJ 3093 Margaritas(Kind of wine) on the River Walk (背包方案统计)
    墨卡托投影, GPS 坐标转像素, GPS 坐标转距离
  • 原文地址:https://www.cnblogs.com/mbailing/p/2541560.html
Copyright © 2011-2022 走看看