方法: SpecificFinder メソッドを追加する

SpecificFinder メソッドを作成して、単一のエンティティ インスタンスを返すことができます。 ビジネス データの Web パーツまたは外部リストに含まれるエンティティを選択すると、ビジネス データ接続 (BDC) サービスで SpecificFinder メソッドが実行されます。 詳細については、「Business Data Connectivity モデルのデザイン」を参照してください。

SpecificFinder メソッドを作成するには

  1. BDC デザイナーで、エンティティを選択します。 Visual Studio の BDC デザイナーにエンティティを追加する方法の 詳細については、「方法: モデルにエンティティを追加する」を参照してください。

  2. [表示] メニューの [その他のウィンドウ] をクリックし、[BDC メソッドの詳細] をクリックします。

    [BDC メソッドの詳細] ウィンドウが表示されます。 [BDC メソッドの詳細] ウィンドウの詳細については、「BDC モデルのデザイン ツールの概要」を参照してください。

  3. [BDC メソッドの詳細] ウィンドウの [メソッドの追加] ドロップダウン リストから [SpecificFinder メソッドの作成] を選択します。

    次の要素がモデルに追加されます。 これらの要素は [BDC メソッドの詳細] ウィンドウに表示されます。

    • メソッド。

    • メソッドの入力パラメーター。

    • メソッドの戻り値パラメーター。

    • 各パラメーターの型記述子。

    • メソッドのメソッド インスタンス。

    詳細については、「Business Data Connectivity モデルのデザイン」を参照してください。

  4. Visual Studio のプロパティ ウィンドウを開きます。

  5. 戻り値パラメーターの型記述子をエンティティ型記述子として構成します。 エンティティ型記述子の作成方法の詳細については、「方法: パラメーターの型記述子を定義する」を参照してください。

    注意

    Finder メソッドをエンティティに追加した場合、この手順を実行する必要はありません。 Visual Studio では、Finder メソッドで定義した型記述子が使用されます。

    注意

    エンティティ型の識別子フィールドが自動的に生成されるデータベース テーブルのフィールドを表している場合は、識別子フィールドの [読み取り専用] プロパティを [True] に設定します。

  6. [メソッドの詳細] ウィンドウで、メソッドのメソッド インスタンスを選択します。

    既定では、このメソッドには "MethodInstance1" という名前が付けられます。

  7. プロパティ ウィンドウで、"戻り値パラメーター名" プロパティをメソッドの戻り値パラメーターの名前に設定します。 メソッド インスタンス プロパティの詳細については、「MethodInstance」を参照してください。

  8. ソリューション エクスプローラーで、そのエンティティ用に生成されたサービス コード ファイルを右クリックし、[コードの表示] をクリックします。

    コード エディターで、エンティティ サービス コード ファイルが開きます。 エンティティ サービス コード ファイルの詳細については、「ビジネス データ接続モデルの作成」を参照してください。

  9. SpecificFinder メソッドにコードを追加します。 このコードは次のタスクを実行します。

    • データ ソースからレコードを取得します。

    • BDC サービスにエンティティを返します。

    次の例では、SQL Server の AdventureWorks サンプル データベースの連絡先を返します。

    注意

    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;
    }
    

参照

処理手順

方法: Finder メソッドを追加する

方法: Creator メソッドを追加する

方法: Deleter メソッドを追加する

方法: Updater メソッドを追加する

方法 : メソッドにパラメーターを追加する

方法: メソッド インスタンスを定義する

その他の技術情報

Business Data Connectivity モデルのデザイン

BDC モデルのデザイン ツールの概要