如何:使用 ADO.NET 實(shí)體框架數(shù)據(jù)源創(chuàng)建數(shù)據(jù)服務(wù)(WCF 數(shù)據(jù)服務(wù))
WCF 數(shù)據(jù)服務(wù) 將實(shí)體數(shù)據(jù)作為數(shù)據(jù)服務(wù)公開。 如果數(shù)據(jù)源為關(guān)系數(shù)據(jù)庫,則此實(shí)體數(shù)據(jù)是由 ADO.NET實(shí)體框架提供的。 本主題介紹如何在基于現(xiàn)有數(shù)據(jù)庫的 Visual Studio Web 應(yīng)用程序中創(chuàng)建基于實(shí)體框架的數(shù)據(jù)模型,以及如何使用此數(shù)據(jù)模型創(chuàng)建新的數(shù)據(jù)服務(wù)。
實(shí)體框架還提供了一個可以在 Visual Studio 項目外部生成實(shí)體框架模型的命令行工具。 有關(guān)更多信息,請參見如何:使用 EdmGen.exe 生成模型和映射文件。
將基于現(xiàn)有數(shù)據(jù)庫的實(shí)體框架模型添加到現(xiàn)有 Web 應(yīng)用程序
-
在“項目”菜單上單擊“添加新項”。
-
在“模板”窗格中,單擊“數(shù)據(jù)”類別,然后選擇“ADO.NET 實(shí)體數(shù)據(jù)模型”。
-
鍵入模型名稱,然后單擊“添加”。
將顯示“實(shí)體數(shù)據(jù)模型向?qū)А钡牡谝豁摗?/span>
-
在“選擇模型內(nèi)容”對話框中,選擇“從數(shù)據(jù)庫生成”。 然后,單擊“下一步”。
-
單擊“新建連接”按鈕。
-
在“連接屬性”對話框中,鍵入服務(wù)器名稱,選擇身份驗(yàn)證方法,鍵入數(shù)據(jù)庫名稱,然后單擊“確定”。
“選擇您的數(shù)據(jù)連接”對話框?qū)⒁阅臄?shù)據(jù)庫連接設(shè)置更新。
-
確保選中“將 App.Config 中的實(shí)體連接設(shè)置另存為:”復(fù)選框。 然后,單擊“下一步”。
-
在“選擇數(shù)據(jù)庫對象”對話框中,選擇計劃在數(shù)據(jù)服務(wù)中公開的所有數(shù)據(jù)庫對象。
注意
數(shù)據(jù)服務(wù)不自動公開數(shù)據(jù)模型中包含的對象。 它們必須由服務(wù)本身顯式公開。 有關(guān)更多信息,請參見配置數(shù)據(jù)服務(wù)(WCF 數(shù)據(jù)服務(wù))。
-
單擊“完成”以完成向?qū)А?/span>
這將基于特定數(shù)據(jù)庫創(chuàng)建默認(rèn)數(shù)據(jù)模型。 實(shí)體框架允許對數(shù)據(jù)模型進(jìn)行自定義。 有關(guān)更多信息,請參見任務(wù)。
使用新數(shù)據(jù)模型創(chuàng)建數(shù)據(jù)服務(wù)
-
在 Visual Studio 中,打開代表數(shù)據(jù)模型的 .edmx 文件。
-
在“模型瀏覽器”中,右擊模型,單擊“屬性”,然后記下實(shí)體容器的名稱。
-
在“解決方案資源管理器”中,右擊 ASP.NET 項目的名稱,然后單擊“添加新項”。
-
在“添加新項”對話框中,選擇“WCF 數(shù)據(jù)服務(wù)”。
-
指定服務(wù)的名稱,然后單擊“確定”。
Visual Studio 將為新服務(wù)創(chuàng)建 XML 標(biāo)記和代碼文件。 默認(rèn)情況下,代碼編輯器窗口將打開。
-
在數(shù)據(jù)服務(wù)代碼中,將用于定義數(shù)據(jù)服務(wù)的類定義中的注釋 /* TODO: put your data source class name here */ 替換為從 ObjectContext 類繼承且作為數(shù)據(jù)模型的實(shí)體容器的類型,如步驟 2 中所述。
-
在數(shù)據(jù)服務(wù)代碼中,啟用經(jīng)過授權(quán)的客戶端來訪問數(shù)據(jù)服務(wù)公開的實(shí)體集。 有關(guān)更多信息,請參見創(chuàng)建數(shù)據(jù)服務(wù)。
-
若要使用 Web 瀏覽器測試 Northwind.svc 數(shù)據(jù)服務(wù),請按照從 Web 瀏覽器訪問服務(wù)(WCF 數(shù)據(jù)服務(wù)快速入門)主題中的說明操作。