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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM