EF框架之三種模式


       使用EF之前必須要對EF有個宏觀的了解.學習任何一種技術都要像門衛一樣問幾個問題.

      第一,它是誰?

      第二,從哪里來?

      第三,到哪里去?

 

     默念一遍:不謀全局者,不足謀一域.

 

        

 

        Entity FrameworkORMapping的一種具體實現,ORMapping又是什么呢?ORM--ObjectRelation Mapping,即對象關系映射框架/數據持久化框架,是根據實體對象操作數據表中數據的一種面向對象的操作框架.

 

       其實Entity Framework的底層也是調用Ado.Net,它是更高層次的封裝.作為數據訪問的技術,EntityFramework的設計有高擴展性,這一點可體現在其映射定義的靈活性.簡單地說,使用Entity Framework可以充分地定義與數據庫表映射的實體,這個實體可以直接用於業務邏輯層或作為服務的數據契約.使用EF,可以將實體類的設計工作完全放在EDM的設計過程中,而不需要手工寫那些大同小異的代碼,令人欣喜的是這個實體模型可以在運行時修改並生效,做到一改全改.我們開發時也不用再頻繁地與數據庫打交道,我們操作實體模型的同時EF框架自動完成了對數據庫的操作.

 

        對於一種新了解的技術,了解宏觀是必須的,但是要想盡快熟悉還是要做一做的,寫一寫demo.這次底層設計一直在討論教育雲平台的實體部分使用哪種模式,我們知道網絡上特別流行Codefist,下面就來說一說EF框架划分的模式:

  • DataBase First
  • Model First
  • CodeFirst

  DataBase First傳統的表驅動方式創建EDM,然后通過EDM生成模型和數據層代碼。除生成實體模型和自跟蹤實現模型,還支持生成輕型DbContext。

  Model First先創建EDM模型,再生成DDL數據庫腳本和模型和數據層代碼。除生成實體模型和自跟蹤實現模型,支持生成輕型DbContext。

  Code First手動創建POCO模型,數據層DbContext及映射關系,通過Database.SetInitializer生成數據庫,這種方式較靈活,但是代碼工作較多。

  雖然Code First靈活,但是我們不可能手工去寫大量的POCO類和映射關系。所以我們此次開發選擇Model First.


免責聲明!

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



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