逐步解說:使用商務資料在 SharePoint 中建立外部清單
商務資料連接 (BDC) 服務可讓 SharePoint 顯示後端伺服器應用程式、Web 服務和資料庫中的商務資料。
本逐步解說將示範如何為傳回範例資料庫中聯絡人相關資料的 BDC 服務建立模型,然後您將使用此模型在 SharePoint 中建立外部清單。
這個逐步解說將說明下列工作:
建立專案。
在模型中新增實體。
加入搜尋方法。
加入特定搜尋方法。
測試專案。
必要條件
您需要下列元件才能完成此逐步解說:
支援的 Windows 和 SharePoint 版本。如需詳細資訊,請參閱開發 SharePoint 方案的要求。
Visual Studio Professional、Visual Studio Ultimate 或 Visual Studio Premium。
AdventureWorks 範例資料庫的存取權限。如需如何安裝 AdventureWorks 資料庫的詳細資訊,請參閱 SQL Server 範例資料庫 (英文)。
建立專案包含 BDC 模型
建立專案包含 BDC 模型
在 Visual Studio的功能表列,選擇 [ 檔案], 新增, 專案。
[新增專案] 對話方塊隨即開啟。
在 [Visual C#] 或 [Visual Basic] 底下,展開 [SharePoint] 節點,然後選取 [2010 年] 項目。
在 [範本] 窗格中,選取 [SharePoint 2010 專案],將專案 AdventureWorksTest,然後選擇 [OK] 按鈕。
[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# 中),然後選取 [刪除]。
在模型中新增實體
將模型新增至實體。您可以在 BDC 設計工具上的 Visual Studio [工具箱] 加入實體。
若要在模型中新增實體
在功能表列上,選擇 [檢視]],則 [工具箱]。
在 [工具箱] 的 [BusinessDataConnectivity] 索引標籤,請在 BDC 設計工具上的 [實體] 。
新實體隨即出現在設計工具中。Visual Studio 隨即將名為 EntityService.vb 的檔案 (Visual Basic) 或 EntityService.cs (在 C# 中) 加入至專案。
在功能表列上,選擇 [檢視]],則 [屬性], [視窗]。
在 [屬性] 視窗中,將 [名稱] 屬性值觸控。
在設計工具中,開啟實體的捷徑功能表,選擇 [加入]],然後選取 [識別項]。
新識別項隨即出現在實體上。
在 [屬性視窗] 中,將識別項的名稱變更為 ContactID。
在 [輸入名稱] 清單中,選取 [System.Int32]。
加入特定搜尋方法
若要讓 BDC 服務顯示特定的連絡人,您必須加入「特定搜尋」方法。BDC 服務會呼叫特定搜尋方法,當使用者選取清單中的項目然後選取功能區上的 [檢視項目] 按鈕。
請使用 [BDC 方法詳細資料] 視窗,在 Contact 實體中加入特定搜尋方法。若要傳回特定實體,請在方法中加入程式碼。
若要加入特定搜尋方法
在 BDC 設計工具上,選取 [連絡人] 實體。
在功能表列上,選擇 [檢視]],則 [其他視窗], [BDC 方法詳細資料]。
[BDC 方法詳細資料] 視窗隨即開啟。
在 [將方法] 清單中,選取 [建立特定搜尋方法]。
Visual Studio 會將下列項目加入至模型。這些項目會顯示在 [BDC 方法詳細資料] 視窗中。
名為 ReadItem 的方法。
此方法的輸入參數。
方法的傳回參數。
各個參數的型別描述元。
此方法的方法執行個體。
在 [BDC 方法詳細資料] 視窗中,開啟為 [連絡人] 型別描述元出現的清單,然後選取 [編輯]。
[BDC 總管] 隨即開啟並提供模型的階層式檢視。
在 [屬性] 視窗中,按一下 [TypeName] 屬性旁邊的開啟清單中,選取 [本專案] 索引標籤,然後選取 [連絡人] 屬性。
在 [BDC 總管] 中,開啟 [連絡人] 的捷徑功能表,然後選擇 [將型別描述元]。
名為 [TypeDescriptor1] 的新的型別描述元隨即出現在 [BDC 總管] 中。
在 [屬性] 視窗中,將 [名稱] 屬性值設定為 ContactID。
在 [TypeName] 屬性旁邊的開啟清單,然後選取 [Int32]。
在 [識別項] 屬性旁邊的開啟清單,然後選取 ContactID。
重複步驟 6,為下列各個欄位建立型別描述元。
名稱
型別名稱
FirstName
System.String
LastName
System.String
Phone
System.String
EmailAddress
System.String
EmailPromotion
System.Int32
NameStyle
System.Boolean
PasswordHash
System.String
PasswordSalt
System.String
在 BDC 設計工具中,按一下 [連絡人] 實體,請開啟 [ReadItem] 方法。
Contact 服務程式碼檔案隨即在 [程式碼編輯器] 中開啟。
在 ContactService 類別中,使用下列程式碼取代 ReadItem 方法。這個程式碼會執行下列工作:
從 AdventureWorks 資料庫的 [連絡人] 資料表擷取記錄。
將 Contact 實體傳回至 BDC 服務。
注意事項
將 ServerName 欄位的值替換成您的伺服器名稱。
Public Shared Function ReadItem(ByVal contactID As Integer) As Contact Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim Contact As Contact = _ (From TempContacts In dataContext.Contacts.AsEnumerable().Take(20) _ Where TempContacts.ContactID = contactID _ Select TempContacts).[Single]() Return Contact End Function
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 設計工具中,選取 [連絡人] 實體。
在 [BDC 方法詳細資料] 視窗中,選取 [ReadItem] 節點。
在 [ReadList] 方法下方的 [將方法] 清單中,選取 [建立搜尋方法]。
Visual Studio 會加入方法、傳回參數以及型別描述元。
在 BDC 設計工具中,按一下 [連絡人] 實體,請開啟 [ReadList] 方法。
連絡人的服務程式碼檔案隨即在程式碼編輯器中開啟。
在 ContactService 類別中,使用下列程式碼取代 ReadList 方法。這個程式碼會執行下列工作:
從 AdventureWorks 資料庫的 [連絡人] 資料表擷取資料。
將 Contact 實體清單傳回至 BDC 服務。
注意事項
將 ServerName 欄位的值替換成您的伺服器名稱。
Public Shared Function ReadList() As IEnumerable(Of Contact) Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim Contacts As IEnumerable(Of Contact) = _ From TempContacts In dataContext.Contacts.Take(20) _ Select TempContacts Return Contacts End Function
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 範例資料庫中的連絡人。
若要測試特定搜尋方法,請選取清單中的連絡人。
在功能區,請選取 [項目] 索引標籤,然後選取 [檢視項目。] 命令。
您選取連絡人的詳細資料會出現在表單上。
後續步驟
您可以透過下列主題,進一步了解如何在 SharePoint 中設計 BDC 服務的模型: