逐步解說:在 Visual Studio 中建立和存取 WCF 資料服務
在本逐步解說中,會示範如何建立裝載於 ASP.NET Web 應用程式的簡單 WCF 資料服務,並從 Windows Form 應用程式存取此服務。
在這份逐步解說中,您將能夠:
建立裝載 WCF 資料服務的 Web 應用程式。
建立呈現 Northwind 資料庫中的 Customers 資料表的 實體資料模型。
建立 WCF 資料服務。
建立用戶端應用程式,並加入 WCF 資料服務的參考。
啟用對服務的資料繫結,並產生使用者介面。
您可以選擇在應用程式中加入篩選功能。
必要條件
您需要下列元件才能完成此逐步解說:
Northwind 範例資料庫。
如果您的開發電腦上沒有這個資料庫,可以從 Microsoft 下載中心下載。 如需相關說明,請參閱下載範例資料庫 (LINQ to SQL)。
建立服務
若要建立 WCF 資料服務,請加入 Web 專案、建立 實體資料模型,然後透過模型建立服務。
在第一個步驟中,您要加入一個 Web 專案以裝載服務。
注意事項 |
---|
您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。 您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。 如需詳細資訊,請參閱 Visual Studio 設定。 |
若要建立 Web 專案
按一下 Visual Studio [檔案] 功能表上的 [新增專案]。
展開 [新增專案] 對話方塊中的 [Visual Basic] 或 [Visual C#] 節點,再按一下 [Web],然後選取 [ASP.NET Web 應用程式]。
在 [名稱] 欄位中輸入 NorthwindWeb,然後按一下 [確定] 建立專案。
在此步驟中,您會建立一個呈現 Northwind 資料庫中 Customers 資料表的 實體資料模型。
若要建立實體資料模型
在 [專案] 功能表上按一下 [加入新項目]。
選取 [加入新項目] 對話方塊中的 [ADO.NET 實體資料模型]。
在 [名稱] 欄位中輸入 NorthwindModel,然後按一下 [加入]。
[實體資料模型精靈] 隨即出現:
選取 [實體資料模型精靈] 中的 [從資料庫產生],然後按一下 [下一步]。
在 [選擇資料連接] 頁面上,執行下列其中一個步驟:
如果下拉式清單中提供 Northwind 範例資料庫的資料連接,請按一下這個資料連接。
-或-
按一下 [新增連接],設定新的資料連接。 如需詳細資訊,請參閱 How to: Create Connections to SQL Server Databases。
如果資料庫需要密碼,請選取選項以輸入機密資料,然後按一下 [下一步]。
注意事項 如果對話方塊隨即出現,請按一下 [是],將檔案儲存到專案。
展開 [選擇您的資料庫物件] 頁面上的 [資料表] 節點,然後選取 [Customers] 旁邊的核取方塊,再按一下 [完成]。
實體模型圖表隨即顯示,並將 NorthwindModel.edmx 檔案加入至您的專案中。
在這個步驟中,您將會建立與測試資料服務。
若要建立資料服務
在 [專案] 功能表上,按一下 [加入新項目]。
選取 [加入新項目] 對話方塊中的 [WCF 資料服務]。
在 [名稱] 欄位中輸入 NorthwindCustomers,然後按一下 [加入]。
NorthwindCustomers.svc 檔案會顯示在 [程式碼編輯器] 中。
在 [程式碼編輯器] 中找出第一個 TODO: 註解,並以下列程式碼取代:
Inherits DataService(Of northwindEntities)
public class NorthwindCustomers : DataService<northwindEntities>
注意事項 根據您使用的 Northwind 資料庫版本,您可能需要將 "NORTHWIND" 變更為 "NORTHWND"。 您也可以使用 IntelliSense 來尋找正確的名稱。
將 InitializeService 事件處理常式中的註解以下列程式碼取代:
config.SetEntitySetAccessRule("*", EntitySetRights.All)
config.SetEntitySetAccessRule("*", EntitySetRights.All);
按 Ctrl+F5 執行服務, 瀏覽器視窗隨即開啟,並顯示服務的 XML 結構描述。
在 [網址] 列中,於 NorthwindCustomers.svc 的 URL 後面輸入 Customers,然後按 ENTER。
隨即會顯示 Customers 資料表中資料的 XML 表示。
注意事項 在某些情況中,Internet Explorer 會將資料錯譯為 RSS 饋送 (RSS Feed)。 您必須確定顯示 RSS 饋送的選項已停用。 如需詳細資訊,請參閱服務參考的疑難排解。
關閉瀏覽器視窗。
在接下來的步驟中,您將要建立 Windows Form 用戶端應用程式以使用服務。
建立用戶端應用程式
若要建立用戶端應用程式,您將要加入第二個專案、在專案中加入服務參考、設定資料來源,並建立要顯示來自服務之資料的使用者介面。
在第一個步驟中,您要在方案中加入 Windows Form 專案,並設定為啟始專案。
若要建立用戶端應用程式
按一下 Visual Studio [檔案] 功能表上的 [加入],再按一下 [新增專案]。
展開 [新增專案] 對話方塊中的 [Visual Basic] 或 [Visual C#] 節點,再按一下 [Windows],然後選取 [Windows Form 應用程式]。
在 [名稱] 欄位中輸入 NorthwindClient,然後按一下 [確定] 開啟專案。
在 [方案總管] 中,選取 [NorthwindClient] 專案。
按一下 [專案] 功能表上的 [設定為啟始專案]。
在這個步驟中,您將在 Web 專案中加入 WCF 資料服務的服務參考。
若要加入服務參考
按一下 [專案] 功能表上的 [加入服務參考]。
在 [加入服務參考] 對話方塊中,按一下 [探索]。
NorthwindCustomers 服務的 URL 隨即顯示在 [位址] 欄位中。
按一下 [確定] 加入服務參考。
在這個步驟中,您將設定資料來源,讓資料能夠繫結至服務。
若要啟用對服務的資料繫結
按一下 [資料] 功能表上的 [顯示資料來源]。
在 [資料來源] 視窗中,按一下 [加入新資料來源]。
在 [資料來源組態精靈] 的 [選擇資料來源類型] 頁面中,按一下 [物件],再按一下 [下一步]。
展開 [選取您要繫結的目標物件] 頁面上的 [NorthwindClient] 節點,再展開 [NorthwindClient.ServiceReference1] 節點。
選取 [Customers],然後按一下 [完成]。
在這個步驟中,您將會建立要顯示來自服務之資料的使用者介面。
若要建立使用者介面
從 [資料來源] 視窗,將 [Customers] 節點拖曳至表單。
表單中會加入一個 DataGridView 控制項、一個 BindingSource 元件,和一個 BindingNavigator 元件。
按兩下表單,開啟 [程式碼編輯器],然後將下列程式碼加入至 Form1_Load 事件處理常式:
Dim proxy As New ServiceReference1.northwindModel.northwindEntities _ (New Uri("https://localhost:53161/NorthwindCustomers.svc/")) Me.CustomersBindingSource.DataSource = proxy.Customers
ServiceReference1.northwindModel.northwindEntities proxy = new ServiceReference1.northwindModel.northwindEntities(new Uri("https://localhost:53397/NorthwindCustomers.svc/")); this.customersBindingSource.DataSource = proxy.Customers;
注意事項 根據您使用的 Northwind 資料庫版本,您可能需要將 "NORTHWIND" 變更為 "NORTHWND"。 您也可以使用 IntelliSense 來尋找正確的名稱。
在 [方案總管] 中,以滑鼠右鍵按一下 [NorthwindCustomers.svc] 檔案,再按一下 [在瀏覽器中檢視]。 Internet Explorer 隨即開啟,並顯示服務的 XML 結構描述。
由 Internet Explorer 的 [網址] 列複製 URL。
由您在步驟 2 中加入的程式碼中,選取 https://localhost:14735/NorthwindCustomers.svc 並取代為您剛剛複製的 URL。
按下 F5,執行應用程式。 客戶資訊隨即顯示。
現在您會有一個工作應用程式,會顯示來自 NorthwindCustomers 服務的客戶清單。 如果您想要透過服務公開額外的資料,可以將 實體資料模型 修改為包含來自 Northwind 資料庫的額外資料表。
在下一個選擇性的步驟中,您將會學習如何篩選服務傳回的資料。
加入篩選功能
在此步驟中,您將會自訂應用程式,根據客戶的所在城市篩選資料。
若要加入根據城市進行篩選的功能
按兩下 [方案總管] 中的 [Form1.vb] 或 [Form1.cs],顯示 [Windows Form 設計工具]。
按兩下 Button 控制項,然後在 Button1_Click 事件處理常式中加入下列程式碼:
Dim proxy As New ServiceReference1.northwindModel.northwindEntities _ (New Uri("https://localhost:53161/NorthwindCustomers.svc")) Dim city As String = TextBox1.Text If city <> "" Then Me.CustomersBindingSource.DataSource = From c In _ proxy.Customers Where c.City = city End If
ServiceReference1.northwindModel.northwindEntities proxy = new ServiceReference1.northwindModel.northwindEntities(new Uri("https://localhost:53397/NorthwindCustomers.svc/")); string city = textBox1.Text; if (city != "") { this.customersBindingSource.DataSource = from c in proxy.Customers where c.City == city select c;
在前述的程式碼中,將 https://localhost:14735/NorthwindCustomers.svc 取代為 Form1_Load 事件處理常式中的 URL。
按下 F5,執行應用程式。
在文字方塊中輸入 London,然後按一下按鈕。 接著,就會只顯示 London 的客戶。