淺析ADO.NET實體數據訪問和更改
在向大家詳細介紹ADO.NET實體數據之前,首先讓大家了解下實體框架結構,然后全面介紹ADO.NET實體數據。實體框架不僅僅是另一種對象關系映射解決方案,還從根本上使應用程序可以訪問和更改表示為概念模型中的ADO.NET實體數據和關系數據。對象服務使用 EDM 將對概念模型中所表示的ADO.NET實體數據類型的對象查詢轉換為特定于數據源的查詢。
查詢結果具體化為對象服務管理的對象。實體框架 提供以下方式用于查詢 EDM 并返回對象:
◆LINQ to Entities -- 提供語言集成查詢 (LINQ) 支持用于查詢在概念模型中定義的實體類型。有關更多信息,請參見 LINQ to Entities 概述。
◆Entity SQL -- 與存儲無關的 SQL 方言,直接使用概念模型中的實體并支持諸如繼承和關系等 EDM 功能。Entity SQL 可用于對象查詢和使用 EntityClient 提供程序執行的查詢。有關更多信息,請參見 Entity SQL 概述。
◆查詢生成器方法 -- 使您可以使用 LINQ 風格的查詢方法構造 Entity SQL 查詢。有關更多信息,請參見查詢生成器方法(實體框架)。
#T#實體框架中包含 EntityClient 數據提供程序。此提供程序管理連接,將實體查詢轉換為特定于數據源的查詢,并返回一個由對象服務用來將實體數據具體化為對象的數據讀取器。當不需要對象具體化時,通過使應用程序執行 Entity SQL 查詢并使用返回的只讀數據讀取器,還可以像標準 ADO.NET 數據提供程序一樣使用 EntityClient 提供程序。有關更多信息,請參見 用于實體框架EntityClient 提供程序。下圖演示用于訪問數據的實體框架體系結構:
實體框架結構圖
實體框架 生成一個從 ObjectContext 派生的類,該類表示概念模型中的實體容器。此對象上下文提供跟蹤更改以及管理標識、并發和關系的功能。此類還公開將插入、更新和刪除操作寫入數據源的 SaveChanges 方法。與查詢類似,這些更改是由系統自動生成的命令或由開發人員指定的存儲過程執行的。有關更多信息,請參見添加、修改和刪除對象(實體框架)。