最近在學習研究微軟的EF,通過這時間的學習研究,感覺這個EF目前來說還不是很完善,半成品。不過,據說在.Net4.0中,微軟將推薦使用此框架,並會有所改善。而且,現在基本上所有數據庫均提供了對EF的支持。因此,為以後做技術准備可以學習研究以下。但是,我個人覺得就目前來說,在實際項目慎用此框架。
下面簡單的介紹以下這個EF。
在.Net Framework SP1微軟包含一個實體框架(Entity Framework),此框架可以理解成微軟的一個ORM產品。用於支持開發人員通過對概念性應用程序模型編程(而不是直接對關系存儲架構編程)來創建數據訪問應用程序。目標是降低面向數據的應用程序所需的代碼量並減輕維護工作。Entity Framework 應用程序有以下優點:
·應用程序可以通過更加以應用程序為中心的概念性模型(包括具有繼承性、復雜成員和關系的類型)來工作。
·應用程序不再對特定的數據引擎或存儲架構具有硬編碼依賴性。
·可以在不更改應用程序代碼的情況下更改概念性模型與特定於存儲的架構之間的映射。
·開發人員可以使用可映射到各種存儲架構(可能在不同的數據庫管理系統中實現)的一致的應用程序對象模型。
·多個概念性模型可以映射到同一個存儲架構。
·語言集成查詢支持可為查詢提供針對概念性模型的編譯時語法驗證。
實體框架Entity Framework 是 ADO.NET 中的一組支持開發面向數據的軟件應用程序的技術。在EF中的實體數據模型(EDM)由以下三種模型和具有相應文件擴展名的映射文件進行定義。
·概念架構定義語言文件(.csdl ) -- 定義概念模型。
·存儲架構定義語言文件(.ssdl ) -- 定義存儲模型(又稱邏輯模型)。
·映射規范語言文件(.msl ) -- 定義存儲模型與概念模型之間的映射。
實體框架 使用這些基於 XMl 的模型和映射文件將對概念模型中的實體和關系的創建、讀取、更新和刪除操作轉換為數據源中的等效操作。EDM 甚至支持將概念模型中的實體映射到數據源中的存儲過程。它提供以下方式用於查詢 EDM 並返回對象:
·LINQ to Entities -- 提供語言集成查詢(LINQ) 支持用於查詢在概念模型中定義的實體類型。
·Entity SQl -- 與存儲無關的 SQl 方言,直接使用概念模型中的實體並支持諸如繼承和關系等 EDM 功能。
·查詢生成器方法 --可以使用 LINQ 風格的查詢方法構造 Entity SQl 查詢。
下圖演示用於訪問數據的實體框架體系結構: