共用方式為


逐步解說:在 Visual Studio 中建立和存取 WCF 資料服務

在本逐步解說中,會示範如何建立裝載於 ASP.NET Web 應用程式的簡單 WCF 資料服務,並從 Windows Form 應用程式存取此服務。

在這份逐步解說中,您將能夠:

  • 建立裝載 WCF 資料服務的 Web 應用程式。

  • 建立呈現 Northwind 資料庫中的 Customers 資料表的 實體資料模型。

  • 建立 WCF 資料服務。

  • 建立用戶端應用程式,並加入 WCF 資料服務的參考。

  • 啟用對服務的資料繫結,並產生使用者介面。

  • 您可以選擇在應用程式中加入篩選功能。

必要條件

您需要下列元件才能完成此逐步解說:

建立服務

若要建立 WCF 資料服務,請加入 Web 專案、建立 實體資料模型,然後透過模型建立服務。

在第一個步驟中,您要加入一個 Web 專案以裝載服務。

注意事項注意事項

您的電腦可能會在下列說明中,以不同名稱或位置顯示某些 Visual Studio 使用者介面項目。您所擁有的 Visual Studio 版本以及使用的設定會決定這些項目。如需詳細資訊,請參閱 Visual Studio 設定

若要建立 Web 專案

  1. 按一下 Visual Studio [檔案] 功能表上的 [新增專案]。

  2. 在 [新的專案] 對話方塊中,展開 [Visual Basic] 或 [Visual C#] 節點並按一下 [網路]],然後選取 [ASP.NET Web Form 應用程式]。

  3. 在 [名稱] 欄位中輸入 NorthwindWeb,然後按一下 [確定] 建立專案。

在此步驟中,您會建立一個呈現 Northwind 資料庫中 Customers 資料表的 實體資料模型。

若要建立實體資料模型

  1. 在 [專案] 功能表上,按一下 [加入新項目]。

  2. 在 [加入新項目。] 對話方塊中,選取 [資料]],然後選取 [ADO.NET 實體資料模型]。

  3. 在 [名稱] 欄位中輸入 NorthwindModel,然後按一下 [加入]。

    [實體資料模型精靈] 隨即出現:

  4. 選取 [實體資料模型精靈] 中的 [從資料庫產生],然後按一下 [下一步]。

  5. 在 [選擇資料連接] 頁面上,執行下列其中一個步驟:

    • 如果下拉式清單中提供 Northwind 範例資料庫的資料連接,請按一下這個資料連接。

      -或-

    • 按一下 [新增連接],設定新的資料連接。 如需詳細資訊,請參閱How to: Create Connections to SQL Server Databases

  6. 如果資料庫需要密碼,請選取選項以輸入機密資料,然後按一下 [下一步]。

    注意事項注意事項

    如果對話方塊隨即出現,請按一下 [],將檔案儲存到專案。

  7. 展開 [選擇您的資料庫物件] 頁面上的 [資料表] 節點,然後選取 [Customers] 旁邊的核取方塊,再按一下 [完成]。

    實體模型圖表隨即顯示,並將 NorthwindModel.edmx 檔案加入至您的專案中。

在這個步驟中,您將會建立與測試資料服務。

若要建立資料服務

  1. 在 [專案] 功能表上,按一下 [加入新項目]。

  2. 在 [加入新項目。] 對話方塊中選取 [網路] ],然後選取 [WCF 資料服務]。

  3. 在 [名稱] 欄位中輸入 NorthwindCustomers,然後按一下 [加入]。

    NorthwindCustomers.svc 檔案會顯示在 [程式碼編輯器] 中。

  4. 在 [程式碼編輯器] 中找出第一個 TODO: 註解,並以下列程式碼取代:

    Inherits DataService(Of northwindEntities)
    
    public class NorthwindCustomers : DataService<northwindEntities>
    
    注意事項注意事項

    根據您使用的 Northwind 資料庫版本,您可能需要將 "NORTHWIND" 變更為 "NORTHWND"。您也可以使用 IntelliSense 來尋找正確的名稱。

  5. 將 InitializeService 事件處理常式中的註解以下列程式碼取代:

    config.SetEntitySetAccessRule("*", EntitySetRights.All)
    
    config.SetEntitySetAccessRule("*", EntitySetRights.All);
    
  6. 按 Ctrl+F5 執行服務, 瀏覽器視窗隨即開啟,並顯示服務的 XML 結構描述。

  7. 在 [網址] 列中,於 NorthwindCustomers.svc 的 URL 後面輸入 Customers,然後按 ENTER。

    隨即會顯示 Customers 資料表中資料的 XML 表示。

    注意事項注意事項

    在某些情況中,Internet Explorer 會將資料錯譯為 RSS 饋送 (RSS Feed)。您必須確定顯示 RSS 饋送的選項已停用。如需詳細資訊,請參閱服務參考的疑難排解

  8. 關閉瀏覽器視窗。

在接下來的步驟中,您將要建立 Windows Form 用戶端應用程式以使用服務。

建立用戶端應用程式

若要建立用戶端應用程式,您將要加入第二個專案、在專案中加入服務參考、設定資料來源,並建立要顯示來自服務之資料的使用者介面。

在第一個步驟中,您要在方案中加入 Windows Form 專案,並設定為啟始專案。

若要建立用戶端應用程式

  1. 按一下 Visual Studio [檔案] 功能表上的 [加入],再按一下 [新增專案]。

  2. 展開 [新增專案] 對話方塊中的 [Visual Basic] 或 [Visual C#] 節點,再按一下 [Windows],然後選取 [Windows Form 應用程式]。

  3. 在 [名稱] 欄位中輸入 NorthwindClient,然後按一下 [確定] 開啟專案。

  4. 在 [方案總管] 中,選取 [NorthwindClient] 專案。

  5. 按一下 [專案] 功能表上的 [設定為啟始專案]。

在這個步驟中,您將在 Web 專案中加入 WCF 資料服務的服務參考。

若要加入服務參考

  1. 按一下 [專案] 功能表上的 [加入服務參考]。

  2. 在 [加入服務參考] 對話方塊中,按一下 [探索]。

    NorthwindCustomers 服務的 URL 隨即顯示在 [位址] 欄位中。

  3. 按一下 [確定] 加入服務參考。

在這個步驟中,您將設定資料來源,讓資料能夠繫結至服務。

若要啟用對服務的資料繫結

  1. 按一下 [資料] 功能表上的 [顯示資料來源]。

  2. 在 [資料來源] 視窗中,按一下 [加入新資料來源]。

  3. 在 [資料來源組態精靈] 的 [選擇資料來源類型] 頁面中,按一下 [物件],再按一下 [下一步]。

  4. 展開 [選取您要繫結的目標物件] 頁面上的 [NorthwindClient] 節點,再展開 [NorthwindClient.ServiceReference1] 節點。

  5. 選取 [Customers],然後按一下 [完成]。

在這個步驟中,您將會建立要顯示來自服務之資料的使用者介面。

若要建立使用者介面

  1. 從 [資料來源] 視窗,將 [Customers] 節點拖曳至表單。

    表單中會加入一個 DataGridView 控制項、一個 BindingSource 元件,和一個 BindingNavigator 元件。

  2. 按兩下表單,開啟 [程式碼編輯器],然後將下列程式碼加入至 Form1_Load 事件處理常式:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("http://localhost:53161/NorthwindCustomers.svc/"))
           Me.CustomersBindingSource.DataSource = proxy.Customers
    
               ServiceReference1.northwindModel.northwindEntities proxy = new
    ServiceReference1.northwindModel.northwindEntities(new
    Uri("http://localhost:53397/NorthwindCustomers.svc/"));
               this.customersBindingSource.DataSource = proxy.Customers;
    
    注意事項注意事項

    根據您使用的 Northwind 資料庫版本,您可能需要將 "NORTHWIND" 變更為 "NORTHWND"。您也可以使用 IntelliSense 來尋找正確的名稱。

  3. 在 [方案總管] 中,以滑鼠右鍵按一下 [NorthwindCustomers.svc] 檔案,再按一下 [在瀏覽器中檢視]。 Internet Explorer 隨即開啟,並顯示服務的 XML 結構描述。

  4. 由 Internet Explorer 的 [網址] 列複製 URL。

  5. 由您在步驟 2 中加入的程式碼中,選取 http://localhost:14735/NorthwindCustomers.svc 並取代為您剛剛複製的 URL。

  6. 按 F5 執行應用程式。 客戶資訊隨即顯示。

現在您會有一個工作應用程式,會顯示來自 NorthwindCustomers 服務的客戶清單。 如果您想要透過服務公開額外的資料,可以將 實體資料模型 修改為包含來自 Northwind 資料庫的額外資料表。

在下一個選擇性的步驟中,您將會學習如何篩選服務傳回的資料。

加入篩選功能

在此步驟中,您將會自訂應用程式,根據客戶的所在城市篩選資料。

若要加入根據城市進行篩選的功能

  1. 按兩下 [方案總管] 中的 [Form1.vb] 或 [Form1.cs],顯示 [Windows Form 設計工具]。

  2. 從 [工具箱] 將 TextBox 控制項和 Button 控制項拖曳至表單。

  3. 按兩下 Button 控制項,然後在 Button1_Click 事件處理常式中加入下列程式碼:

           Dim proxy As New ServiceReference1.northwindModel.northwindEntities _
    (New Uri("http://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("http://localhost:53397/NorthwindCustomers.svc/"));
        string city = textBox1.Text;
    
    if (city != "")
    {
        this.customersBindingSource.DataSource = from c in
     proxy.Customers where c.City == city select c;   
    
  4. 在前述的程式碼中,將 http://localhost:14735/NorthwindCustomers.svc 取代為 Form1_Load 事件處理常式中的 URL。

  5. 按 F5 執行應用程式。

  6. 在文字方塊中輸入 London,然後按一下按鈕。 接著,就會只顯示 London 的客戶。

請參閱

工作

HOW TO:加入、更新或移除 WCF 資料服務參考