上篇介紹了如何使用 SharePoint 伺服器上的 BCS 物件模型連接中繼資料存儲,獲取外部內容類型 (ECT) 及其方法並執行。本文示範如何執行帶有篩選器定義的 ECT Finder 方法。

FirstNameTextbox)、Button (ID: SearchButton)、GridView。
右鍵「引用」→「添加引用」,瀏覽至:
c:\program files\common files\microsoft shared\web server extensions\14\ISAPI\Microsoft.BusinessData.dll
using Microsoft.SharePoint;
using Microsoft.SharePoint.BusinessData.SharedService;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.SharePoint.Administration;
using Microsoft.BusinessData.Runtime;
using Microsoft.SharePoint.BusinessData.Runtime;
private void executeFilterMethod() {
// 獲取中繼資料目錄
BdcService service = SPFarm.Local.Services.GetValue<BdcService>();
IMetadataCatalog catalog = service.GetDatabaseBackedMetadataCatalog(SPServiceContext.Current);
// 獲取 Employee ECT
IEntity entity = catalog.GetEntity("https://contoso14", "Employee");
// 獲取預設 Finder 方法的篩選器集合
IFilterCollection filters = entity.GetDefaultFinderFilters();
// 設置篩選器值
if (FirstNameTextBox.Text != string.Empty) {
WildcardFilter filter = (WildcardFilter)filters[0];
filter.Value = FirstNameTextBox.Text;
}
// 執行篩選查詢
IEntityInstanceEnumerator enumerator = entity.FindFiltered(filters,
entity.GetLobSystem().GetLobSystemInstances()[0].Value);
// 綁定結果到 GridView
DataTable table = null;
while (enumerator.MoveNext()) {
if (table == null) table = enumerator.Current.EntityAsDataTable;
else table.ImportRow(enumerator.Current.EntityAsDataTable.Rows[0]);
}
GridView1.DataSource = table;
GridView1.DataBind();
}
protected void SearchButton_Click(object sender, EventArgs e) {
executeFilterMethod();
}

後續文章將進一步介紹 BCS 物件模型更多用法。