Updater メソッドを追加する

Updater メソッドを作成することによって、ユーザーが SharePoint 外部リスト内のビジネス データを更新できるようにすることができます。 詳細については、「ビジネス データ接続モデルを設計する」を参照してください。

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

  1. BDC デザイナーで、エンティティを選択します。

  2. メニュー バーで、[表示]>[その他のウィンドウ]>[BDC メソッドの詳細] の順に選択します。

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

  3. [メソッドの追加] 一覧で、[Updater メソッドの作成] を選択します。

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

    • Update という名前のメソッド。

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

    • パラメーターの型記述子。 既定では、Visual Studio では、Finder メソッドに対して定義されたエンティティ型記述子 (Contact など) を使用します。

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

      詳細については、「ビジネス データ接続モデルを設計する」を参照してください。

    Note

    エンティティ型の識別子が、自動的に生成されていないデータベース テーブル内のフィールドを表している場合は、Pre-Updater Field プロパティを True に設定します。

  4. ソリューション エクスプローラーで、エンティティに対して生成されたサービス コード ファイルのショートカット メニューを開き、[コードの表示] を選択します。

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

  5. Update メソッドに、データを更新するコードを追加します。 次の例では、SQL Server 用の AdventureWorks サンプル データベース内の連絡先に関する情報を更新します。

    Note

    ServerName フィールドの値をサーバーの名前に置き換えてください。

    public static void Update(Contact contact)
    {
        const string ServerName = "MySQLServerName";
        AdventureWorksDataContext dataContext = new AdventureWorksDataContext
              ("Data Source=" + ServerName + ";" +
               "Initial Catalog=AdventureWorks;Integrated Security=True");
       
        var contactToUpdate = (from contacts in dataContext.Contacts
                                where contacts.ContactID == contact.ContactID
                                select contacts).Single();
    
        contactToUpdate.FirstName = contact.FirstName;
        contactToUpdate.LastName = contact.LastName;
        contactToUpdate.EmailAddress = contact.EmailAddress;
        contactToUpdate.Phone = contact.Phone;
        contactToUpdate.EmailPromotion = contact.EmailPromotion;
        contactToUpdate.NameStyle = contact.NameStyle;
        contactToUpdate.PasswordHash = contact.PasswordHash;
        contactToUpdate.PasswordSalt = contact.PasswordSalt;
        contactToUpdate.ModifiedDate = DateTime.Now;
        contactToUpdate.rowguid = Guid.NewGuid();
        dataContext.SubmitChanges();
    
    }