Entity Framework入門教程(1)---Entity Framework簡介

什麼是Entity Framework

學習EF的前提:熟練使用Linq和Ado.net,由於在使用EF框架進行開發時,咱們大多數狀況使用Linq進行查詢和操做,而EF的底層實現用的是Ado.net。html

1.EF的概念

  在.NET3.5以前,咱們常常編寫ADO.NET代碼或企業數據訪問塊來保存或檢索底層數據庫中的數據。作法是:打開過一個數據庫的鏈接,建立一個DataSet來獲取或提交數據到數據庫,經過將DataSet中的數據和.NET對象相互轉換來知足業務需求。這是一個麻煩且容易出錯的過程Microsoft提供了「Entity Framework」框架,用於自動地執行全部上述與數據庫相關的活動。
EF是一個適用於.NET開發的開源ORM框架。它使開發人員可以經過領域對象來處理數據,而無需關注存儲此數據的基礎數據庫。使用實體框架,開發人員在處理數據時能夠在更高的抽象級別上工做,而且與傳統應用程序相比,可使用更少的代碼建立和維護面向數據的應用程序。
官方定義:「實體框架是一種對象關係映射器(O/RM),它使.NET開發人員可以經過.NET對象來操做數據庫。它消除了開發人員一般須要編寫的大多數數據訪問代碼的需求。「數據庫

實體框架工做在業務實體(域類)和數據庫之間。它保存實體屬性中的數據到數據庫,也能夠從數據庫中檢索數據並自動將其轉換爲實體對象。
緩存

2.EF功能彙總

這裏簡單地總結EF的特性,之後詳細總結併發

1.跨平臺 EF Core是一個跨平臺的框架,能夠在Windows,Linux和Mac上運行。
2.建模     EF能夠建立具備不一樣數據類型get / set屬性的EDM(Entity Data Model/實體數據模型)。它使用此模型查詢或保存底層數據庫的數據。
3.查詢  EF容許咱們使用LINQ從底層數據庫中檢索數據,同時也支持直接對數據庫執行原始SQL查詢。
4.更改跟蹤  EF會跟蹤須要提交到數據庫的實體實例(屬性值)發生的更改。
5.保存     EF調用SaveChanges()方法時,根據實體發生的更改,對數據庫執行INSERT,UPDATE和DELETE命令。EF還提供了異步的SaveChangesAsync()方法。
6.併發 默認狀況下,從數據是從數據庫中提取開始,EF使用樂觀併發來避免咱們作的修改被其餘用戶覆蓋。
7.事務   EF在查詢或保存數據時自動執行事務管理。它還提供自定義事務管理的選項。
8.緩存   EF包括開箱即用的第一級緩存。所以,重複查詢將從緩存中返回數據,而不是訪問數據庫。
9.配置     EF容許咱們使用註釋屬性配置EF模型,也可使用Fluent API來覆蓋默認約定。
10.遷移    EF提供了一組遷移命令,咱們能夠在NuGet Package Manager控制檯或命令行界面中執行這些命令來建立或管理底層數據庫計劃。

 

3.EF組成

下圖很好地說明了EF的基本組成:app

 

EF的組成簡單總結以下:框架

  一、EDM(實體數據模型): EDM包含三個主要部分——概念模型,映射和存儲模型。異步

    概念模型(entity): 概念模型包含了模型類和它們之間的關係。 這將是獨立於數據庫表設計。數據庫設計

    存儲模型(data): 存儲模型是數據庫設計模型,包括表、視圖、存儲過程、以及它們之間的關係和鑰匙。ide

    映射(mapping): 映射由概念模型如何映射到存儲模型的信息組成。post

  二、LINQ To Entity(L2E): L2E是一種的查詢實體對象的語言, 它返回在概念模型中定義的實體。 

  三、Entity SQL: Entity SQL是一個相似於L2E的查詢語言。 然而,它比L2E更加複雜。

  四、Object Services(對象服務):對象服務是訪問數據庫中的數據並返回數據的主要入口點。它負責數據實例化,把Entity Client Data Provider(下一層)的數據轉換成實體對象。

  五、Entity Client Data Provider:主要職責是將L2E或Entity Sql轉換成數據庫能夠識別的Sql查詢語句,它經過ADO.Net Data Provider向數據庫發送或者索取數據。

  六、ADO.Net Data Provider:使用標準的Ado.net與數據庫通訊。

 

EF系列目錄連接:Entity Franmework系列教程彙總

相關文章
相關標籤/搜索