方法: Updater メソッドを追加する
Updater メソッドを作成することで、SharePoint 外部リストのビジネス データを更新できるようになります。 詳細については、「Business Data Connectivity モデルのデザイン」を参照してください。
Updater メソッドを作成するには
BDC デザイナーで、エンティティを選択します。
[表示] メニューの [その他のウィンドウ] をクリックし、[BDC メソッドの詳細] をクリックします。
[BDC メソッドの詳細] ウィンドウが表示されます。 このウィンドウの詳細については、「BDC モデルのデザイン ツールの概要」を参照してください。
[BDC メソッドの詳細] ウィンドウの [メソッドの追加] ドロップダウン リストの [Updater メソッドの作成] をクリックします。
次の要素がモデルに追加されます。 これらの要素は [BDC メソッドの詳細] ウィンドウに表示されます。
Update というメソッド。
メソッドの入力パラメーター。
パラメーターの型記述子。 Visual Studio では、既定により、Finder メソッドに対して定義したエンティティ型記述子 (例: Contact) が使用されます。
メソッドのメソッド インスタンス。
詳細については、「Business Data Connectivity モデルのデザイン」を参照してください。
注意
エンティティ型の識別子が、自動的に生成されないデータベース テーブルのフィールドを表している場合は、[Pre-Updater フィールド] プロパティを [True] に設定します。
ソリューション エクスプローラーで、そのエンティティ用に生成されたサービス コード ファイルを右クリックし、[コードの表示] をクリックします。
コード エディターで、エンティティ サービス コード ファイルが開きます。 エンティティ サービス コード ファイルの詳細については、「ビジネス データ接続モデルの作成」を参照してください。
Updator メソッドにコードを追加してデータを更新します。 次の例では、SQL Server の AdventureWorks サンプル データベースの連絡先に関する情報を更新します。
注意
ServerName フィールドの値を、使用するサーバーの名前に置き換えます。
Public Shared Sub Update(ByVal contact As Contact) Const ServerName As String = "MySQLServerName" Dim dataContext As AdventureWorksDataContext = _ New AdventureWorksDataContext("Data Source=" & ServerName & _ ";Initial Catalog=AdventureWorks;Integrated Security=True") Dim ContactToUpdate As Contact = (From Contacts In dataContext.Contacts.AsEnumerable().Take(20) _ Where Contacts.ContactID = contact.ContactID _ Select Contacts).Single() With ContactToUpdate .FirstName = contact.FirstName .LastName = contact.LastName .EmailAddress = contact.EmailAddress .Phone = contact.Phone .EmailPromotion = contact.EmailPromotion .NameStyle = contact.NameStyle .PasswordHash = contact.PasswordHash .PasswordSalt = contact.PasswordSalt End With dataContext.SubmitChanges() End Sub
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(); }