探索ADO.NET研究切磋學(xué)習(xí)
最近進(jìn)行對(duì)于ADO.NET研究的相關(guān)知識(shí),通過對(duì)ADO.NET研究的深入學(xué)習(xí),感覺這個(gè)EF目前來說還不是很完善。不過,據(jù)說微軟在發(fā)布.Net4.0中,微軟將推薦使用此框架,并會(huì)有所改善。
下面簡單的介紹以下這個(gè)EF。
在.Net Framework SP1微軟包含一個(gè)實(shí)體框架(Entity Framework),此框架可以理解成微軟的一個(gè)ORM產(chǎn)品。用于支持開發(fā)人員通過對(duì)概念性應(yīng)用程序模型編程(而不是直接對(duì)關(guān)系存儲(chǔ)架構(gòu)編程)來創(chuàng)建數(shù)據(jù)訪問應(yīng)用程序。目標(biāo)是降低面向數(shù)據(jù)的應(yīng)用程序所需的代碼量并減輕維護(hù)工作。Entity Framework 應(yīng)用程序有以下優(yōu)點(diǎn):
應(yīng)用程序可以通過更加以應(yīng)用程序?yàn)橹行牡母拍钚阅P停òň哂欣^承性、復(fù)雜成員和關(guān)系的類型)來工作。應(yīng)用程序不再對(duì)特定的數(shù)據(jù)引擎或存儲(chǔ)架構(gòu)具有硬編碼依賴性。可以在不更改應(yīng)用程序代碼的情況下更改概念性模型與特定于存儲(chǔ)的架構(gòu)之間的映射。
開發(fā)人員可以使用可映射到各種存儲(chǔ)架構(gòu)(可能在不同的數(shù)據(jù)庫管理系統(tǒng)中實(shí)現(xiàn))的一致的應(yīng)用程序?qū)ο竽P汀?FONT>ADO.NET研究多個(gè)概念性模型可以映射到同一個(gè)存儲(chǔ)架構(gòu)。語言集成查詢支持可為查詢提供針對(duì)概念性模型的編譯時(shí)語法驗(yàn)證。
實(shí)體框架Entity Framework 是ADO.NET研究中的一組支持開發(fā)面向數(shù)據(jù)的軟件應(yīng)用程序的技術(shù)。在EF中的實(shí)體數(shù)據(jù)模型(EDM)由以下三種模型和具有相應(yīng)文件擴(kuò)展名的映射文件進(jìn)行定義。
概念架構(gòu)定義語言文件 (.csdl) -- 定義概念模型。存儲(chǔ)架構(gòu)定義語言文件 (.ssdl) -- 定義存儲(chǔ)模型(又稱邏輯模型)。映射規(guī)范語言文件 (.msl) -- 定義存儲(chǔ)模型與概念模型之間的映射。#t#
實(shí)體框架 使用這些基于 XML 的模型和映射文件將對(duì)概念模型中的實(shí)體和關(guān)系的創(chuàng)建、讀取、更新和刪除操作轉(zhuǎn)換為數(shù)據(jù)源中的等效操作。ADO.NET研究 甚至支持將概念模型中的實(shí)體映射到數(shù)據(jù)源中的存儲(chǔ)過程。它提供以下方式用于查詢 EDM 并返回對(duì)象:
LINQ to Entities -- 提供語言集成查詢ADO.NET研究支持用于查詢在概念模型中定義的實(shí)體類型。Entity SQL -- 與存儲(chǔ)無關(guān)的 SQL 方言,直接使用概念模型中的實(shí)體并支持諸如繼承和關(guān)系等 EDM 功能。查詢生成器方法 --可以使用 LINQ 風(fēng)格的查詢方法構(gòu)造 Entity SQL 查詢。