逐步解說:使用商務資料在 SharePoint 中建立外部清單
商務資料連接 (BDC) 服務可讓 SharePoint 顯示後端伺服器應用程式、Web 服務和資料庫中的商務資料。
本逐步解說將示範如何為傳回範例資料庫中聯絡人相關資料的 BDC 服務建立模型, 然後您將使用此模型在 SharePoint 中建立外部清單。
這個逐步解說將說明下列工作:
建立專案。
在模型中新增實體。
加入搜尋方法。
加入特定搜尋方法。
測試專案。
必要條件
您需要下列元件才能完成此逐步解說:
支援的 Microsoft Windows 和 SharePoint 版本。 如需詳細資訊,請參閱開發 SharePoint 方案的要求。
Visual Studio 2010 Professional 或某個 Visual Studio Application Lifecycle Management (ALM) 版本。
AdventureWorks 範例資料庫的存取權限。 如需如何安裝 AdventureWorks 資料庫的詳細資訊,請參閱 SQL Server 範例資料庫 (英文)。
建立專案
首先,請建立包含 BDC 模型的專案。
若要建立專案
啟動 Visual Studio 2010。
開啟 [新增專案] 對話方塊、在您要使用的語言下展開 [SharePoint] 節點,然後按一下 [2010]。
在 [範本] 窗格中,選取 [商務資料連接模型], 將專案命名為 AdventureWorksContacts,然後按一下 [確定]。
[SharePoint 自訂精靈] 隨即出現。 這個精靈可讓您選取用來偵錯專案的網站以及方案的信任層級。
按一下 [完成] 以接受預設的本機 SharePoint 網站,以及方案的預設信任層級。
在專案中加入資料存取類別
若要在專案中加入資料存取類別
在 [工具] 功能表上,按一下 [連接至資料庫]。
[加入連接] 對話方塊隨即開啟。
加入 SQL Server AdventureWorks 範例資料庫的連接。 如需詳細資訊,請參閱 新增/修改連接 (Microsoft SQL Server)。
在 [方案總管] 中,按一下專案節點。
按一下 [專案] 功能表上的 [加入新項目]。
在 [已安裝的範本] 窗格中選取 [資料] 節點。
在 [範本] 窗格中選取 [LINQ to SQL 類別]。
在 [名稱] 方塊中輸入 AdventureWorks,然後按一下 [加入]。
專案中隨即加入一個 .dbml 檔,並開啟物件關聯式設計工具 (O/R 設計工具)。
在 [檢視] 功能表上按一下 [伺服器總管]。
在 [伺服器總管] 中展開表示 AdventureWorks 範例資料庫的節點,然後再展開 [資料表] 節點。
將 [Contact (Person)] 資料表拖曳到 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 方法詳細資料] 視窗中,按一下針對 [Contact] 型別描述元而顯示的下拉式清單,然後按一下 [編輯]。
[BDC 總管] 隨即開啟。 [BDC 總管] 可讓您以階層方式檢視模型。
在 [屬性] 視窗中按一下出現在 [TypeName] 屬性旁邊的下拉式清單,按一下 [目前專案] 索引標籤,然後選取 [連絡人]。
在 [BDC 總管] 中,以滑鼠右鍵按一下 [連絡人],然後按一下 [加入型別描述元]。
名為 [TypeDescriptor1] 的新型別描述元隨即在 [BDC 總管] 中顯示。
在 [屬性視窗] 中,將 [名稱] 屬性設定為 ContactID。
按一下 [TypeName] 屬性旁邊的下拉式清單,然後選取 [Int32]。
按一下 [Identifier] 屬性旁邊的下拉式清單,然後選取 [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 設計工具的 [Contact] 實體上,按兩下 [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 設計工具中選取 [Contact] 實體。
在 [BDC 方法詳細資料] 視窗中,摺疊 [ReadList] 節點。
從在 [ReadList] 方法下方顯示的 [加入方法] 下拉式清單中,選取 [建立搜尋方法]。
Visual Studio 會加入方法、傳回參數以及型別描述元。
在 BDC 設計工具中按一下 [Contact] 實體,然後按兩下 [ReadList] 方法。
Contact 服務程式碼檔案隨即在 [程式碼編輯器] 中開啟。
在 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 服務的模型: