逐步解說:使用商務資料在 SharePoint 中建立外部清單
商務資料連線 (BDC) 服務可讓 SharePoint 顯示來自後端伺服器應用程式、Web 服務和資料庫的商務資料。
本逐步解說示範如何建立 BDC 服務的模型,以傳回範例資料庫中連絡人的相關資訊。 接著您會使用此模型在 SharePoint 中建立外部清單。
本逐步解說將說明下列工作:
- 建立專案。
- 將實體新增至模型。
- 新增搜尋工具方法。
- 新增特定搜尋工具方法。
- 測試專案。
必要條件
您需要下列元件才能完成這個逐步解說:
支援的 Windows 和 SharePoint 版本。
存取 AdventureWorks 範例資料庫。 如需如何安裝 AdventureWorks 資料庫的詳細資訊,請參閱 SQL Server 範例資料庫。
建立包含 BDC 模型的專案
在 Visual Studio 的功能表列上,選擇 [檔案] > [新增] > [專案]。
[ 新增專案 ] 對話方塊隨即開啟。
在 [Visual C#] 或 [Visual Basic] 底下展開 [SharePoint] 節點,然後選擇 [2010] 項目。
在 [範本] 窗格中選擇 [SharePoint 2010 專案],將專案命名為 AdventureWorksTest,然後選擇 [確定] 按鈕。
SharePoint 自訂精靈隨即出現。 在這個精靈中,您可以指定要用來進行專案偵錯的網站,以及設定方案的信任層級。
選擇 [部署為陣列方案] 選項按鈕,即可設定信任層級。
選擇 [完成] 按鈕,以接受預設本機 SharePoint 網站。
在 [方案總管] 中選擇 SharePoint 專案節點。
在功能表列中,選擇 [專案]>[加入新項目]。
[新增項目] 對話方塊隨即開啟。
在 [範本] 窗格中選擇 [商務資料連接模型 (僅限陣列方案)],將專案命名為 AdventureWorksContacts,然後選擇 [新增] 按鈕。
將資料存取類別新增至專案
在功能表列上選擇 [工具] > [連接至資料庫]。
[新增連線] 對話方塊隨即開啟。
新增 SQL Server AdventureWorks 範例資料庫的連線。
如需詳細資訊,請參閱 新增/修改連接 (Microsoft SQL Server)。
在 [ 方案總管] 中選擇專案節點。
在功能表列中,選擇 [專案]>[加入新項目]。
在 [已安裝的範本] 窗格中選擇 [資料] 節點。
在 [範本] 窗格中選擇 [LINQ to SQL 類別]。
在 [名稱] 方塊中指定 AdventureWorks,然後選擇 [新增] 按鈕。
.dbml 檔案隨即加入至專案,而且物件關聯式設計工具 (O/R 設計工具) 便會開啟。
在功能表列上,選擇 [檢視] > [伺服器總管]。
在 [伺服器總管] 中,展開代表 AdventureWorks 範例資料庫的節點,然後展開 [資料表] 節點。
將 [連絡人 (人員)] 資料表新增至 O/R 設計工具。
實體類別隨即建立並出現在設計介面上。 這個實體類別的屬性會對應至 Contact (Person) 資料表中的資料行。
從 BDC 模型移除預設實體
商務資料連線模型專案會將名為 Entity1 的預設實體新增至模型。 移除此實體。 稍後,您將會新增實體。 從空白模型開始,可減少完成逐步解說所需的步驟數目。
在 [方案總管] 中展開 [BdcModel1] 節點,然後開啟 [BdcModel1.bdcm] 檔案。
商務資料連線模型檔案會在 BDC 設計工具中開啟。
在設計工具中,開啟 [Entity1] 的捷徑功能表,然後選擇 [刪除]。
在 [方案總管] 中,開啟 Entity1.vb (在 Visual Basic 中) 或 Entity1.cs (在 C# 中) 的捷徑功能表,然後選擇 [刪除]。
開啟 Entity1Service.vb (在 Visual Basic 中) 或 Entity1Service.cs (在 C# 中) 的捷徑功能表,然後選擇 [刪除]。
將實體新增至模型
將實體新增至模型。 您可以將實體從 Visual Studio [工具箱] 新增至 BDC 設計工具上。
在功能表列上,選擇 [檢視]>[工具箱]。
在 [工具箱] 的 [BusinessDataConnectivity] 索引標籤上,將 [實體] 新增至 BDC 設計工具。
新的實體會出現在設計工具上。 Visual Studio 會將名為 EntityService.vb (在 Visual Basic 中) 或 EntityService.cs (在 C# 中) 的檔案新增至專案。
在功能表列上選擇 [檢視] > [屬性] > [視窗]。
在 [屬性] 視窗中,將 [名稱] 屬性設定為 [Contact]。
在設計工具中,開啟實體的捷徑功能表,選擇 [新增],然後選擇 [識別碼]。
新的識別碼會出現在實體上。
在 [屬性] 視窗中,將識別碼的名稱變更為 ContactID。
在 [類型名稱] 清單中,選擇 [System.Int32]。
新增特定搜尋工具方法
若要讓 BDC 服務顯示特定連絡人,您必須新增特定搜尋工具方法。 當使用者在清單中選擇項目,然後選擇 [功能區] 上的 [檢視項目] 按鈕時,BDC 服務便會呼叫特定搜尋工具方法。
使用 [BDC 方法詳細資料] 視窗,將特定搜尋工具方法新增至 Contact 實體。 若要傳回特定實體,請將程式碼新增至方法。
在 BDC 設計工具上選擇 [Contact] 實體。
在功能表列上,選擇 [檢視] > [其他視窗] > [BDC 方法詳細資料]。
[BDC 方法詳細資料] 視窗隨即開啟。
在 [新增方法] 清單中,選擇 [建立特定搜尋工具方法]。
Visual Studio 會將下列元素新增至模型。 這些元素會出現在 [BDC 方法詳細資料] 視窗中。
名為 ReadItem 的方法。
方法的輸入參數。
方法的傳回參數。
每個參數的類型描述元。
方法的方法執行個體。
在 [BDC 方法詳細資料] 視窗中,開啟針對 [連絡人] 類型描述元顯示的清單,然後選擇 [編輯]。
[BDC 總管] 隨即開啟並提供方法的階層檢視。
在 [屬性] 視窗中,開啟 [TypeName] 屬性旁邊的清單,選擇 [目前專案] 索引標籤,然後選擇 [Contact] 屬性。
在 [BDC 總管] 中,開啟 [連絡人] 的捷徑功能表,然後選擇 [新增類型描述元]。
名為 [TypeDescriptor1] 的新類型描述元便會出現在 [BDC 總管] 中。
在 [屬性] 視窗中,將 [Name] 屬性設定為 ContactID。
開啟 [TypeName] 屬性旁邊的清單,然後選擇 [Int32]。
開啟 [Identifier] 屬性旁邊的清單,然後選擇 [ContactID]。
重複步驟 6,為下列每個欄位建立類型描述元。
名稱 類型名稱 FirstName System.String LastName System.String 電話 System.String EmailAddress System.String EmailPromotion System.Int32 NameStyle System.Boolean PasswordHash System.String PasswordSalt System.String 在 BDC 設計工具的 [Contact] 實體上,開啟 [ReadItem] 方法。
Contact 服務程式碼檔案會在 [程式碼編輯器] 中開啟。
在
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 服務,請將程式碼新增至方法。
在 BDC 設計工具中選擇 [Contact] 實體。
在 [BDC 方法詳細資料] 視窗中,摺疊 [ReadItem] 節點。
在 [新增方法] 清單的 [ReadList] 方法下,選擇 [建立搜尋工具方法]。
Visual Studio 會新增方法、傳回參數和類型描述元。
在 BDC 設計工具中的 [Contact] 實體上,開啟 [ReadList] 方法。
Contact 服務的程式碼檔案隨即在 [程式碼編輯器] 中開啟。
在
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 中的安全性設定,才能對解決方案進行偵錯。 如需詳細資訊,請參閱設計商務資料連線模型。
選擇 F5 鍵。
SharePoint 網站隨即開啟。
在 [網站動作] 功能表上,選擇 [更多選項] 命令。
在 [建立] 頁面上,選擇 [外部清單] 範本,然後選擇 [建立] 按鈕。
將自訂清單命名為 Contacts。
選擇 [外部內容類型] 欄位旁的瀏覽按鈕。
在 [外部內容類型選擇器] 對話方塊中,選擇 [AdventureWorksContacts.BdcModel1.Contact] 項目,然後選擇 [建立] 按鈕。
SharePoint 會建立一個外部清單,其中包含 AdventureWorks 範例資料庫中的連絡人。
若要測試特定搜尋工具方法,請選擇清單中的連絡人。
在 [功能區] 上選擇 [項目] 索引標籤,然後選擇 [檢視項目] 命令。
您選擇之連絡人的詳細資料隨即出現在表單上。