Specific Finder メソッドを作成することによって、1 つのエンティティ インスタンスを返すことができます。 ビジネス データ接続 (BDC) サービスでは、ユーザーがビジネス データ Web パーツまたは外部リスト内のエンティティを選択したときに Specific Finder メソッドを実行します。 詳細については、「ビジネス データ接続モデルを設計する」を参照してください。
Specific Finder メソッドを作成するには
BDC デザイナーで、エンティティを選択します。
Visual Studio の BDC デザイナーにエンティティを追加する方法については、「方法: モデルにエンティティを追加する」を参照してください。
メニュー バーで、[表示]>[その他のウィンドウ]、[BDC メソッドの詳細] の順に選択します。
[BDC メソッドの詳細] ウィンドウが開きます。 そのウィンドウの詳細については、「BDC モデルのデザイン ツールの概要」を参照してください。
[メソッドの追加] 一覧で、[Specific Finder メソッドの作成] を選択します。
Visual Studio により、次の要素がモデルに追加されます。 これらの要素は、[BDC メソッドの詳細] ウィンドウに表示されます。
メソッド。
メソッドの入力パラメーター。
メソッドの戻り値パラメーター。
各パラメーターの型記述子。
メソッドのメソッド インスタンス。
詳細については、「ビジネス データ接続モデルを設計する」を参照してください。
Visual Studio の [プロパティ] ウィンドウを開きます。
戻り値パラメーターの型記述子をエンティティ型記述子として構成します。 エンティティ型記述子を作成する方法については、「方法: パラメーターの型記述子を定義する」を参照してください。
Note
このエンティティに Finder メソッドを追加している場合、この手順を実行する必要はありません。 Visual Studio では、その Finder メソッドで定義されている型記述子を使用します。
Note
エンティティ型の識別子フィールドが、自動的に生成されたデータベース テーブル内のフィールドを表している場合は、その識別子フィールドの Read-only プロパティを True に設定します。
[メソッドの詳細] ウィンドウで、そのメソッドのメソッド インスタンスを選択します。
[プロパティ ウィンドウ] で、[戻り値パラメーター名] プロパティをそのメソッドの戻り値パラメーターの名前に設定します。 メソッド インスタンスのプロパティの詳細については、MethodInstance に関するページを参照してください。
ソリューション エクスプローラーで、エンティティに対して生成されたサービス コード ファイルのショートカット メニューを開き、[コードの表示] を選択します。
エンティティ サービス コード ファイルがコード エディターで開きます。 エンティティ サービス コード ファイルの詳細については、「ビジネス データ接続モデルを作成する」を参照してください。
Specific Finder メソッドにコードを追加します。 このコードは、以下のタスクを実行します。
データ ソースからレコードを取得します。
BDC サービスにエンティティを返します。
次の例では、SQL Server 用の AdventureWorks サンプル データベースから連絡先を返します。
Note
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; }