高手論ADO.NET實(shí)體數(shù)據(jù)模型
ADO.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解ADO.NET了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。ADO.NET實(shí)體數(shù)據(jù)模型向?qū)в糜谏蓪?shí)體數(shù)據(jù)模型 (EDM)。使用實(shí)體數(shù)據(jù)模型向?qū)Э梢詮默F(xiàn)有數(shù)據(jù)庫(kù)創(chuàng)建模型(對(duì)于此版本的 ADO.NET 實(shí)體數(shù)據(jù)模型設(shè)計(jì)器,建議采用這種做法),或者也可以生成一個(gè)空模型。
#T#
實(shí)體數(shù)據(jù)模型向?qū)г谀鷮?ASP.NET 實(shí)體數(shù)據(jù)模型添加到項(xiàng)目中之后啟動(dòng),并在生成 EDM 之后啟動(dòng) ADO.NET 實(shí)體數(shù)據(jù)模型設(shè)計(jì)器(實(shí)體設(shè)計(jì)器)。有關(guān)如何向項(xiàng)目添加模型的詳細(xì)信息,請(qǐng)參見如何:新建實(shí)體數(shù)據(jù)模型中的“生成實(shí)體數(shù)據(jù)模型文件”一節(jié)。
ADO.NET實(shí)體數(shù)據(jù)模型向?qū)⒁龑?dǎo)您完成以下步驟:
1.選擇模型內(nèi)容
建議您從現(xiàn)有數(shù)據(jù)庫(kù)生成模型。在隨后的步驟中,實(shí)體數(shù)據(jù)模型向?qū)⒁龑?dǎo)您選擇要包含在 EDM 中的數(shù)據(jù)源、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)對(duì)象。生成空模型要求在實(shí)體數(shù)據(jù)模型向?qū)шP(guān)閉之后手動(dòng)選擇數(shù)據(jù)源、數(shù)據(jù)庫(kù)以及數(shù)據(jù)庫(kù)對(duì)象。
2.選擇您的數(shù)據(jù)連接
您可以從連接下拉列表中選擇一個(gè)現(xiàn)有連接,或者單擊“新建數(shù)據(jù)庫(kù)連接”打開“連接屬性”對(duì)話框,然后創(chuàng)建新的數(shù)據(jù)庫(kù)連接。Visual Studio 速成版無(wú)法連接到服務(wù)器。它們只能連接到數(shù)據(jù)庫(kù)的文件實(shí)例。
3.選擇數(shù)據(jù)庫(kù)對(duì)象
#T#如果在 EDM 中包含存儲(chǔ)過(guò)程,實(shí)體數(shù)據(jù)模型向?qū)⒃诖鎯?chǔ)模型中創(chuàng)建對(duì)應(yīng)于這些存儲(chǔ)過(guò)程的項(xiàng)。您必須手動(dòng)將函數(shù)導(dǎo)入項(xiàng)添加到概念性模型中。有關(guān)更多信息,請(qǐng)參見如何:導(dǎo)入存儲(chǔ)過(guò)程。實(shí)體數(shù)據(jù)模型向?qū)г陉P(guān)閉之后將會(huì)創(chuàng)建一個(gè)包含模型信息的 .edmx 文件。該 .edmx 文件由 ADO.NET 實(shí)體數(shù)據(jù)模型設(shè)計(jì)器使用,通過(guò)該設(shè)計(jì)器可以以圖形方式查看和編輯模型。
此外,ADO.NET實(shí)體數(shù)據(jù)模型向?qū)н€會(huì)創(chuàng)建一個(gè)源代碼文件,其中包含基于 .edmx 文件中的 CSDL 信息而生成的類。該源代碼文件是自動(dòng)生成的,并在 .edmx 文件發(fā)生更改時(shí)隨之更新。較早版本的實(shí)體數(shù)據(jù)模型向?qū)б?.csdl、.ssdl 和 .msl 文件。這些文件中的信息現(xiàn)在封裝在 .edmx 文件中。.csdl、.ssdl 和 .msl 文件現(xiàn)在存儲(chǔ)在解決方案的 bin\Debug 目錄或 bin\Release 目錄中。但不應(yīng)當(dāng)編輯這些文件。對(duì) EDM 進(jìn)行的任何更改都應(yīng)通過(guò) ADO.NET 實(shí)體數(shù)據(jù)模型設(shè)計(jì)器或 XML 編輯器應(yīng)用到 .edmx 文件中。