老鳥(niǎo)歸納ADO.NET實(shí)體框架功能
ADO.NET實(shí)體框架經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET實(shí)體框架了,這里我發(fā)表一下ADO.NET實(shí)體框架功能和大家討論討論。實(shí)體框架應(yīng)用程序要求創(chuàng)建一個(gè)定義實(shí)體和關(guān)系的概念性模型、一個(gè)表示基礎(chǔ)關(guān)系模型的邏輯模型以及二者之間的映射。然后,從概念性模型生成可編程對(duì)象模型。
#T#ADO.NET實(shí)體框架功能和組件協(xié)同工作,可提供端到端的編程環(huán)境。實(shí)體數(shù)據(jù)模型 (EDM) 是 實(shí)體框架最重要的部分。它指定設(shè)計(jì)架構(gòu),架構(gòu)用于生成由應(yīng)用程序代碼使用的可編程類。用于保存數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)由存儲(chǔ)架構(gòu)表示,映射規(guī)范將設(shè)計(jì)架構(gòu)與存儲(chǔ)架構(gòu)連接起來(lái)。概念性實(shí)體可以具體化為對(duì)象,也可以使用數(shù)據(jù)讀取器以序列化格式讀取。開(kāi)發(fā)人員可以根據(jù)需要擴(kuò)展這些對(duì)象,以支持不同的應(yīng)用程序需要。有關(guān)更多信息,請(qǐng)參見(jiàn) 實(shí)體數(shù)據(jù)模型。
通過(guò)Object Services組件,程序員可以使用從概念性模型生成的公共語(yǔ)言運(yùn)行庫(kù) (CLR) 類。它還為 ADO.NET實(shí)體框架功能提供基礎(chǔ)結(jié)構(gòu)支持,包括提供各種服務(wù),例如狀態(tài)管理、更改跟蹤、標(biāo)識(shí)解析、加載和導(dǎo)航關(guān)系、將對(duì)象更改傳播到數(shù)據(jù)庫(kù)修改以及對(duì) Entity SQL 的查詢支持。有關(guān)更多信息,請(qǐng)參見(jiàn)對(duì)象服務(wù)(實(shí)體框架)。LINQ to Entities 為查詢實(shí)體提供語(yǔ)言集成查詢 (LINQ) 支持。通過(guò) LINQ to Entities,開(kāi)發(fā)人員可以使用某種受支持的 .NET Framework 編程語(yǔ)言(例如 Visual Basic 或 Visual C#)編寫數(shù)據(jù)庫(kù)查詢。有關(guān)更多信息,請(qǐng)參見(jiàn) LINQ to Entities。
Entity SQL 是類似于 SQL 的存儲(chǔ)無(wú)關(guān)語(yǔ)言,用來(lái)查詢和處理基于 Entity Data Model (EDM) 的對(duì)象的豐富對(duì)象圖。有關(guān)更多信息,請(qǐng)參見(jiàn) Entity SQL 語(yǔ)言。EntityClient 提供程序通過(guò)根據(jù)概念性實(shí)體和關(guān)系訪問(wèn)數(shù)據(jù)來(lái)擴(kuò)展 ADO.NET 提供程序模型。它執(zhí)行使用 Entity SQL 的查詢。Entity SQL 提供使 EntityClient 能與數(shù)據(jù)庫(kù)進(jìn)行通信的基礎(chǔ)查詢語(yǔ)言。有關(guān)更多信息,請(qǐng)參見(jiàn) 用于實(shí)體框架的 EntityClient 提供程序。
ADO.NET元數(shù)據(jù)組件針對(duì) 實(shí)體框架的設(shè)計(jì)時(shí)和運(yùn)行時(shí)需求管理元數(shù)據(jù)。與模型和映射關(guān)聯(lián)的所有元數(shù)據(jù)都是通過(guò)獨(dú)立于元數(shù)據(jù)存儲(chǔ)所用機(jī)制的元數(shù)據(jù)接口公開(kāi)的。當(dāng)前的存儲(chǔ)機(jī)制使用的文件基于三種 XML 語(yǔ)言:概念性架構(gòu)定義語(yǔ)言 (CSDL)、存儲(chǔ)架構(gòu)定義語(yǔ)言 (SSDL) 和映射規(guī)范語(yǔ)言 (MSL)。有關(guān)更多信息,請(qǐng)參見(jiàn) ADO.NET 元數(shù)據(jù)。實(shí)體框架包含一組不斷發(fā)展的工具,可生成在概念性模型中表示實(shí)體的映射和分部類。有關(guān)更多信息,請(qǐng)參見(jiàn) 實(shí)體數(shù)據(jù)模型工具。
實(shí)體框架包含一個(gè)支持規(guī)范命令目錄樹(shù)的最新 SqlClient 數(shù)據(jù)提供程序。有關(guān)更多信息,請(qǐng)參見(jiàn) 用于實(shí)體框架的 SQL Server .NET Framework 數(shù)據(jù)提供程序 (SqlClient)。
體系結(jié)構(gòu)圖
下圖演示各用戶可訪問(wèn)編程接口在 實(shí)體框架中的關(guān)聯(lián)方式。向下箭頭表示對(duì)數(shù)據(jù)源的查詢,向上箭頭表示返回的數(shù)據(jù)。對(duì)象服務(wù)生成規(guī)范命令目錄樹(shù),該命令目錄樹(shù)表示對(duì)概念性模型執(zhí)行的 LINQ to Entities 或 Entity SQL 操作。EntityClient 提供程序基于 EDM 將此規(guī)范命令目錄樹(shù)轉(zhuǎn)換成一個(gè)作為對(duì)數(shù)據(jù)源的等效操作的新規(guī)范命令目錄樹(shù)。