共用方式為


逐步解說:使用商務資料在 SharePoint 中建立外部清單

商務資料連線 (BDC) 服務可讓 SharePoint 顯示來自後端伺服器應用程式、Web 服務和資料庫的商務資料。

本逐步解說示範如何建立 BDC 服務的模型,以傳回範例資料庫中連絡人的相關資訊。 接著您會使用此模型在 SharePoint 中建立外部清單。

本逐步解說將說明下列工作:

  • 建立專案。
  • 將實體新增至模型。
  • 新增搜尋工具方法。
  • 新增特定搜尋工具方法。
  • 測試專案。

必要條件

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

  • 支援的 Windows 和 SharePoint 版本。

  • 存取 AdventureWorks 範例資料庫。 如需如何安裝 AdventureWorks 資料庫的詳細資訊,請參閱 SQL Server 範例資料庫

建立包含 BDC 模型的專案

  1. 在 Visual Studio 的功能表列上,選擇 [檔案] > [新增] > [專案]

    [ 新增專案 ] 對話方塊隨即開啟。

  2. 在 [Visual C#] 或 [Visual Basic] 底下展開 [SharePoint] 節點,然後選擇 [2010] 項目。

  3. 在 [範本] 窗格中選擇 [SharePoint 2010 專案],將專案命名為 AdventureWorksTest,然後選擇 [確定] 按鈕。

    SharePoint 自訂精靈隨即出現。 在這個精靈中,您可以指定要用來進行專案偵錯的網站,以及設定方案的信任層級。

  4. 選擇 [部署為陣列方案] 選項按鈕,即可設定信任層級。

  5. 選擇 [完成] 按鈕,以接受預設本機 SharePoint 網站。

  6. 在 [方案總管] 中選擇 SharePoint 專案節點。

  7. 在功能表列中,選擇 [專案]>[加入新項目]

    [新增項目] 對話方塊隨即開啟。

  8. 在 [範本] 窗格中選擇 [商務資料連接模型 (僅限陣列方案)],將專案命名為 AdventureWorksContacts,然後選擇 [新增] 按鈕。

將資料存取類別新增至專案

  1. 在功能表列上選擇 [工具] > [連接至資料庫]

    [新增連線] 對話方塊隨即開啟。

  2. 新增 SQL Server AdventureWorks 範例資料庫的連線。

    如需詳細資訊,請參閱 新增/修改連接 (Microsoft SQL Server)

  3. 在 [ 方案總管] 中選擇專案節點。

  4. 在功能表列中,選擇 [專案]>[加入新項目]

  5. 在 [已安裝的範本] 窗格中選擇 [資料] 節點。

  6. 在 [範本] 窗格中選擇 [LINQ to SQL 類別]

  7. 在 [名稱] 方塊中指定 AdventureWorks,然後選擇 [新增] 按鈕。

    .dbml 檔案隨即加入至專案,而且物件關聯式設計工具 (O/R 設計工具) 便會開啟。

  8. 在功能表列上,選擇 [檢視] > [伺服器總管]

  9. 在 [伺服器總管] 中,展開代表 AdventureWorks 範例資料庫的節點,然後展開 [資料表] 節點。

  10. 將 [連絡人 (人員)] 資料表新增至 O/R 設計工具。

    實體類別隨即建立並出現在設計介面上。 這個實體類別的屬性會對應至 Contact (Person) 資料表中的資料行。

從 BDC 模型移除預設實體

商務資料連線模型專案會將名為 Entity1 的預設實體新增至模型。 移除此實體。 稍後,您將會新增實體。 從空白模型開始,可減少完成逐步解說所需的步驟數目。

  1. 在 [方案總管] 中展開 [BdcModel1] 節點,然後開啟 [BdcModel1.bdcm] 檔案。

  2. 商務資料連線模型檔案會在 BDC 設計工具中開啟。

  3. 在設計工具中,開啟 [Entity1] 的捷徑功能表,然後選擇 [刪除]

  4. 在 [方案總管] 中,開啟 Entity1.vb (在 Visual Basic 中) 或 Entity1.cs (在 C# 中) 的捷徑功能表,然後選擇 [刪除]

  5. 開啟 Entity1Service.vb (在 Visual Basic 中) 或 Entity1Service.cs (在 C# 中) 的捷徑功能表,然後選擇 [刪除]

將實體新增至模型

將實體新增至模型。 您可以將實體從 Visual Studio [工具箱] 新增至 BDC 設計工具上。

  1. 在功能表列上,選擇 [檢視]>[工具箱]

  2. 在 [工具箱] 的 [BusinessDataConnectivity] 索引標籤上,將 [實體] 新增至 BDC 設計工具。

    新的實體會出現在設計工具上。 Visual Studio 會將名為 EntityService.vb (在 Visual Basic 中) 或 EntityService.cs (在 C# 中) 的檔案新增至專案。

  3. 在功能表列上選擇 [檢視] > [屬性] > [視窗]

  4. 在 [屬性] 視窗中,將 [名稱] 屬性設定為 [Contact]

  5. 在設計工具中,開啟實體的捷徑功能表,選擇 [新增],然後選擇 [識別碼]

    新的識別碼會出現在實體上。

  6. 在 [屬性] 視窗中,將識別碼的名稱變更為 ContactID

  7. 在 [類型名稱] 清單中,選擇 [System.Int32]

新增特定搜尋工具方法

若要讓 BDC 服務顯示特定連絡人,您必須新增特定搜尋工具方法。 當使用者在清單中選擇項目,然後選擇 [功能區] 上的 [檢視項目] 按鈕時,BDC 服務便會呼叫特定搜尋工具方法。

使用 [BDC 方法詳細資料] 視窗,將特定搜尋工具方法新增至 Contact 實體。 若要傳回特定實體,請將程式碼新增至方法。

  1. 在 BDC 設計工具上選擇 [Contact] 實體。

  2. 在功能表列上,選擇 [檢視] > [其他視窗] > [BDC 方法詳細資料]

    [BDC 方法詳細資料] 視窗隨即開啟。

  3. 在 [新增方法] 清單中,選擇 [建立特定搜尋工具方法]

    Visual Studio 會將下列元素新增至模型。 這些元素會出現在 [BDC 方法詳細資料] 視窗中。

    • 名為 ReadItem 的方法。

    • 方法的輸入參數。

    • 方法的傳回參數。

    • 每個參數的類型描述元。

    • 方法的方法執行個體。

  4. 在 [BDC 方法詳細資料] 視窗中,開啟針對 [連絡人] 類型描述元顯示的清單,然後選擇 [編輯]

    [BDC 總管] 隨即開啟並提供方法的階層檢視。

  5. 在 [屬性] 視窗中,開啟 [TypeName] 屬性旁邊的清單,選擇 [目前專案] 索引標籤,然後選擇 [Contact] 屬性。

  6. 在 [BDC 總管] 中,開啟 [連絡人] 的捷徑功能表,然後選擇 [新增類型描述元]

    名為 [TypeDescriptor1] 的新類型描述元便會出現在 [BDC 總管] 中。

  7. 在 [屬性] 視窗中,將 [Name] 屬性設定為 ContactID

  8. 開啟 [TypeName] 屬性旁邊的清單,然後選擇 [Int32]

  9. 開啟 [Identifier] 屬性旁邊的清單,然後選擇 [ContactID]

  10. 重複步驟 6,為下列每個欄位建立類型描述元。

    名稱 類型名稱
    FirstName System.String
    LastName System.String
    電話 System.String
    EmailAddress System.String
    EmailPromotion System.Int32
    NameStyle System.Boolean
    PasswordHash System.String
    PasswordSalt System.String
  11. 在 BDC 設計工具的 [Contact] 實體上,開啟 [ReadItem] 方法。

    Contact 服務程式碼檔案會在 [程式碼編輯器] 中開啟。

  12. ContactService 類別中,以下列程式碼取代 ReadItem 方法。 這個程式碼會執行下列工作:

    • 從 AdventureWorks 資料庫的 Contact 資料表擷取記錄。

    • 將 Contact 實體傳回 BDC 服務。

    注意

    使用您的伺服器名稱來取代 ServerName 欄位的值。

    public static Contact ReadItem(int contactID)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
    
        Contact Contact =
            (from contacts in dataContext.Contacts.AsEnumerable().Take(20)
             where contacts.ContactID == contactID
             select contacts).Single();
        return Contact;
    }
    

新增搜尋工具方法

若要讓 BDC 服務顯示清單中的連絡人,您必須新增搜尋工具方法。 使用 [BDC 方法詳細資料] 視窗,將搜尋工具方法新增至 [Contact] 實體。 若要將實體集合傳回 BDC 服務,請將程式碼新增至方法。

  1. 在 BDC 設計工具中選擇 [Contact] 實體。

  2. 在 [BDC 方法詳細資料] 視窗中,摺疊 [ReadItem] 節點。

  3. 在 [新增方法] 清單的 [ReadList] 方法下,選擇 [建立搜尋工具方法]

    Visual Studio 會新增方法、傳回參數和類型描述元。

  4. 在 BDC 設計工具中的 [Contact] 實體上,開啟 [ReadList] 方法。

    Contact 服務的程式碼檔案隨即在 [程式碼編輯器] 中開啟。

  5. ContactService 類別中,以下列程式碼取代 ReadList 方法。 這個程式碼會執行下列工作:

    • 從 AdventureWorks 資料庫的 Contact 資料表擷取資料。

    • 將 Contact 實體清單傳回至 BDC 服務。

      注意

      使用您的伺服器名稱來取代 ServerName 欄位的值。

      public static IEnumerable<Contact> ReadList()
      {
          const string ServerName = "MySQLServerName";
          AdventureWorksDataContext dataContext = new AdventureWorksDataContext
                ("Data Source=" + ServerName + ";" +
                 "Initial Catalog=AdventureWorks;Integrated Security=True");
      
          IEnumerable<Contact> Contacts =
              from contacts in dataContext.Contacts.Take(20)
              select contacts;
          return Contacts;
      
      }
      

測試專案

當您執行專案時,SharePoint 網站隨即開啟,且 Visual Studio 會將您的模型新增至「商務資料連線」服務。 在 SharePoint 中建立會參考 Contact 實體的外部清單。 AdventureWorks 資料庫中連絡人的資料會出現在清單中。

注意

您可能必須先修改 SharePoint 中的安全性設定,才能對解決方案進行偵錯。 如需詳細資訊,請參閱設計商務資料連線模型

  1. 選擇 F5 鍵。

    SharePoint 網站隨即開啟。

  2. 在 [網站動作] 功能表上,選擇 [更多選項] 命令。

  3. 在 [建立] 頁面上,選擇 [外部清單] 範本,然後選擇 [建立] 按鈕。

  4. 將自訂清單命名為 Contacts

  5. 選擇 [外部內容類型] 欄位旁的瀏覽按鈕。

  6. 在 [外部內容類型選擇器] 對話方塊中,選擇 [AdventureWorksContacts.BdcModel1.Contact] 項目,然後選擇 [建立] 按鈕。

    SharePoint 會建立一個外部清單,其中包含 AdventureWorks 範例資料庫中的連絡人。

  7. 若要測試特定搜尋工具方法,請選擇清單中的連絡人。

  8. 在 [功能區] 上選擇 [項目] 索引標籤,然後選擇 [檢視項目] 命令。

    您選擇之連絡人的詳細資料隨即出現在表單上。