SpecificFinder メソッドを追加する
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; }