コード スニペット: 外部コンテンツ タイプの IdEnumerator メソッド インスタンスを実行する
最終更新日: 2010年5月6日
適用対象: SharePoint Server 2010
この記事の内容
説明
前提条件
この例を使用するには
説明
以下のコード例は、サーバー上で BDC ランタイム オブジェクト モデルを使用することにより、プログラミングによって外部コンテンツ タイプの IdEnumerator メソッド インスタンスを実行する方法を示します。
前提条件
サーバー上の Microsoft SharePoint Server 2010 あるいは Microsoft SharePoint Foundation 2010。
クライアント上の Microsoft .NET Framework 3.5 と Microsoft Visual Studio。
この例を使用するには
Visual Studio を開始し、C# コンソール アプリケーション プロジェクトを作成します。プロジェクトを作成するときに、[.NET Framework 3.5] を選択します。
[表示] メニューから、[プロパティ ページ] をクリックしてプロジェクト プロパティを表示します。
[ビルド] タブから、[プラットフォーム ターゲット] で、[Any CPU] を選択します。
プロジェクト プロパティ ウィンドウを閉じます。
[ソリューション エクスプローラー] の [参照設定] で、[System] と [System.Core] を除いて、すべてのプロジェクト参照を削除します。
プロジェクトに以下の参照を追加します。
Microsoft.BusinessData
Microsoft.SharePoint
System.Web
この手順の最後に示すコードで、Program.cs のコードを置換します。
SiteURL の値を、有効なサイト URL で置換します。
このサンプルは、AdventureWorks サンプル データベースと顧客外部コンテンツ タイプに基づきます。使用する外部システムが異なる場合は、コード内で、外部コンテンツ タイプの名前および LobSystem を必要に応じて変更します。
プロジェクトを保存します。
プロジェクトをコンパイルして、実行します。
using System;
using Microsoft.SharePoint.BusinessData.SharedService;
using Microsoft.BusinessData.MetadataModel;
using Microsoft.BusinessData.MetadataModel.Collections;
using Microsoft.BusinessData.Runtime;
using Microsoft.SharePoint.Administration;
using Microsoft.SharePoint;
namespace SDKSamples
{
class Methods
{
static void Main(string[] args)
{
EnumerateCustomerIds();
}
// IdEnumerator.
public static void EnumerateCustomerIds()
{
string SiteURL = "<SiteUrl>";
using (SPSite site = new SPSite(SiteURL))
{
using (new Microsoft.SharePoint.SPServiceContextScope(
SPServiceContext.GetContext(site)))
{
BdcService service =
SPFarm.Local.Services.GetValue<BdcService>(String.Empty);
IMetadataCatalog catalog =
service.GetDatabaseBackedMetadataCatalog(
SPServiceContext.Current);
// Get customer Entity for Sample AdventureWorks Model which supplies the IdEnumerator Method.
IEntity customerEntity = catalog.GetEntity("AdventureWorks", "Customer");
// Get the default filter values.
IMethodInstance idEnumeratorMethodInstance =
customerEntity.GetMethodInstance(
"Id Enumerator", MethodInstanceType.IdEnumerator);
IFilterCollection defaultFilters =
idEnumeratorMethodInstance.GetFilters();
// Set the limit filter value to 10.
// This method instance has only one filter, which is the limit filter.
IUserInputFilter limitFilter = (IUserInputFilter)defaultFilters[0];
limitFilter[0] = 10;
// Get LOB System instance.
ILobSystemInstance lobSystemInstance =
customerEntity.GetLobSystem().
GetLobSystemInstances()["AdventureWorks"];
IEntityInstanceEnumerator customerIdentities = null;
try
{
// List customer identities with default filter values.
customerIdentities =
customerEntity.EnumerateIdentities(
defaultFilters, lobSystemInstance);
// List customer IDs found.
while (customerIdentities.MoveNext())
{
Console.WriteLine(
String.Format(
"Customer Id: {0}",
customerIdentities.Current["CustomerID"]));
}
}
finally
{
// Ensure the enumerator is closed.
if (customerIdentities != null)
{
customerIdentities.Close();
}
}
}
}
}
}
}
関連項目
参照
GetDatabaseBackedMetadataCatalog(SPServiceContext)