Share via


建立資料服務

在這個工作中,您將建立使用 WCF Data Services 的範例資料服務,以便公開以 Northwind 範例資料庫為基礎的 Open Data Protocol (OData) 摘要。 這個工作包含下列基本步驟:

  1. 建立 ASP.NET Web 應用程式。

  2. 使用 實體資料模型 工具來定義資料模型。

  3. 將資料服務加入至 Web 應用程式。

  4. 啟用資料服務的存取。

Dd728275.note(zh-tw,VS.100).gif注意:
當您完成這項工作時所建立的 ASP.NET Web 應用程式會在 Visual Studio 提供的 ASP.NET 程式開發伺服器上執行。 ASP.NET 程式開發伺服器只支援從本機電腦存取。 若要一併在開發期間更輕鬆地測試資料服務並進行疑難排解,請考慮使用 Internet Information Services (IIS) 執行可裝載資料服務的應用程式。 如需詳細資訊,請參閱 HOW TO:開發在 IIS 上執行的 WCF 資料服務

若要建立 ASP.NET Web 應用程式

  1. 在 Visual Studio 的 [檔案] 功能表上,選取 [新增],然後選取 [專案]。

  2. 在 [新增專案] 對話方塊的 [Visual Basic] 或 [Visual C#] 下方,選取 [Web] 範本,然後選取 [ASP.NET Web 應用程式]。

    Dd728275.note(zh-tw,VS.100).gif注意:
    如果您使用 Visual Studio Web Developer,就必須建立新網站,而非建立新的 Web 應用程式。

  3. 輸入 NorthwindService 做為專案的名稱。

  4. 按一下 [確定]。

  5. (選擇性) 指定 Web 應用程式的特定連接埠號碼。 注意:快速入門的其餘部分會使用通訊埠編號 12345

    1. 在 [方案總管] 中,以滑鼠右鍵按一下您剛建立的 ASP.NET 專案名稱,然後按一下 [屬性]。

    2. 選取 [Web] 索引標籤,並將 [指定通訊埠] 文字方塊的值設定為 12345

若要定義資料模型

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 ASP.NET 專案名稱,然後按一下 [加入新項目]。

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

  3. 針對資料模型的名稱,輸入 Northwind.edmx

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

  5. 進行下列其中一項步驟,將資料模型連接至資料庫,然後按一下 [下一步]:

    • 如果尚未設定資料庫連接,請按一下 [新增連接],然後建立新的連接。 如需詳細資訊,請參閱 HOW TO:建立連接至 SQL Server 資料庫。 此 SQL Server 執行個體必須已附加 Northwind 範例資料庫。

      -或-

    • 如果您擁有已經設定為連接至 Northwind 資料庫的資料庫連接,請從連接清單中選取該連接。

  6. 在精靈的最後一頁上,選取資料庫中所有資料表的核取方塊,並且清除檢視表和預存程序的核取方塊。

  7. 按一下 [完成] 關閉精靈。

    Dd728275.note(zh-tw,VS.100).gif注意:
    這樣產生的資料模型會在實體類型上公開外部索引鍵屬性。 使用 Visual Studio 2008 建立的資料模型不包含這些外部索引鍵屬性。 因此,您必須更新之前為了存取 Northwind 資料服務所建立之任何用戶端應用程式的用戶端資料服務類別,此資料服務是在嘗試存取這一版的 Northwind 資料服務之前使用 Visual Studio 2008 所建立。

若要建立資料服務

  1. 在 [方案總管] 中,以滑鼠右鍵按一下 ASP.NET 專案名稱,然後按一下 [加入新項目]。

  2. 選取 [加入新項目] 對話方塊中的 [WCF 資料服務]。

  3. 針對服務名稱,輸入 Northwind

    Visual StudioVisual Studio 會針對新的服務建立 XML 標記和程式碼檔案。 根據預設,程式碼編輯器視窗隨即開啟。 在 [方案總管] 中,這個服務將會具有名稱 Northwind,副檔名為 .svc.cs 或 .svc.vb。

  4. 在資料服務的程式碼裡,於定義資料服務和型別的類別定義中,取代註解 /* TODO: put your data source class name here */,該型別是資料模型的實體容器,在這個案例中是 NorthwindEntities。 類別定義應該看起來如下所示:

    Public Class Northwind
        Inherits DataService(Of NorthwindEntities)
    
    public class Northwind : DataService<NorthwindEntities>
    

若要啟用資料服務資源的存取

  1. 在資料服務的程式碼中,以下列程式碼取代 InitializeService 函式中的預留位置程式碼:

    ' Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead _
         Or EntitySetRights.WriteMerge _
         Or EntitySetRights.WriteReplace)
    config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead _
        Or EntitySetRights.AllWrite)
    config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead)
    
     // Grant only the rights needed to support the client application.
    config.SetEntitySetAccessRule("Orders", EntitySetRights.AllRead 
         | EntitySetRights.WriteMerge 
         | EntitySetRights.WriteReplace );
     config.SetEntitySetAccessRule("Order_Details", EntitySetRights.AllRead
         | EntitySetRights.AllWrite);
     config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
    

    如此可讓授權的用戶端具有指定之實體集資源的讀取和寫入存取權。

    Dd728275.note(zh-tw,VS.100).gif注意:
    任何可存取 ASP.NET 應用程式的用戶端也可以存取資料服務公開的資源。 在產生資料服務的過程中,若要避免未經授權存取資源,您也應該要保護應用程式本身。 如需詳細資訊,請參閱保護 WCF Data Services 的安全

後續步驟

您已成功建立可公開 OData 摘要的新資料服務 (此摘要是以 Northwind 範例資料庫為基礎),而且您已啟用用戶端的摘要存取權,該用戶端擁有 ASP.NET Web 應用程式權限。 接著,您會從 Visual Studio 啟動資料服務,然後透過 Web 瀏覽器送出 HTTP GET 要求,藉以存取 OData 摘要:

從 Web 瀏覽器存取服務

另請參閱

其他資源

ADO.NET Entity Data Model Tools