EF工作流程
1.EF基本CRUD流程
下邊的圖就可以很清晰地展示EF的CRUD操作的基本工作流程:
這里做一個EF CRUD操作的簡單總結:
1.定義模型:這是EF工作的前提,定義模型包括定義領域類(Domain Classes),派生自DbContext的上下文類和Configuration(如果有的話)。EF將通過模型來執行CRUD操作。
2.添加數據:將領域對象添加到上下文並調用SaveChanges()方法。EF API將構建適當的INSERT命令並將其執行到數據庫。
3.讀取數據:執行LINQ-to-Entities查詢。EF API會將此查詢轉換為底層關系數據庫的SQL查詢並執行,然后將結果轉換為實體對象並顯示在UI上。
4.編輯或刪除數據:從上下文更新或刪除實體對象並調用該SaveChanges()方法。EF API將構建適當的UPDATE或DELETE命令並執行。
2.EF的工作過程簡析
這里將展示EF工作的基本過程
EF API(EF6和EF Core)包括幾個功能:①將領域類映射到數據庫,②將LINQ查詢轉換為SQL並執行,③跟蹤實體在其生命周期內發生的更改,並將這些更改保存到數據庫。
實體數據模型(Entity Data Model)
EF API的首要任務是構建實體數據模型(EDM)。EDM是整個元數據的內存表示,包含:概念模型,存儲模型以及它們之間的映射。
概念模型: EF通過領域類,上下文類,默認約定和配置構建概念模型。
存儲模型: EF為底層數據庫架構構建存儲模型。在代碼優先方法中,根據概念模型進行推斷來構建。在數據庫優先模式中,根據目標數據庫進行推斷來構建。
映射: EF包括的映射信息,表示概念模型是如何映射到數據庫架構(存儲模型)。
查詢
EF API使用EDM將LINQ-to-Entities查詢轉換為SQL查詢,並將結果轉換回實體對象。
保存
EF API在調用SaveChanges()方法時根據實體的狀態推斷INSERT,UPDATE和DELETE命令。ChangeTrack會在執行操作時跟蹤每個實體的狀態。
EF系列目錄鏈接:Entity Franmework系列教程匯總