SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlightで行うデータ処理アプリケーション開発の第一歩

Silverlightで実装するデータ処理の応用

Silverlightで行うデータ処理アプリケーション開発の第一歩 第5回

  • X ポスト
  • このエントリーをはてなブックマークに追加

データの追加

 ADO.NET Data Servicesを使用したデータの追加を考えてみましょう。

 例えば、前述したサンプルシステムでは、購入したい商品を選択し、[バスケットに追加]ボタンを押すことで、データの追加が発生します。

バスケットに追加
バスケットに追加

 このときデータが追加されるエンティティ(テーブル)の1つとして、Basketsがあります。

 Basketsは、Customersエンティティ(購入者)と以下の図のような関係性を持っているので、新規でBasketsオブジェクトを作成して追加する際に、Customersに対して考慮を行う必要があります。

BasketsエンティティとCustomersエンティティの関係性
BasketsエンティティとCustomersエンティティの関係性

 下記が、Basketsへのデータ追加のコードです。

Basketsへのデータ追加
Baskets  basket = new Baskets()
{
    BasketId = Guid.NewGuid(),
    Customers = AuthenticationContext.Current.User.Customer,
    LastUpdateDate = DateTime.Now
};
context.AddToBaskets(basket);
context.AttachTo("Customers", AuthenticationContext.Current.User.Customer);
context.SetLink(basket, "Customers“g, AuthenticationContext.Current.User.Customer);

 // Data Services による更新確定
    context.BeginSaveChanges(SaveChangesOptions.Batch, OnAddBasketSaveChanged, context);
}
private void OnAddBasketSaveChanged(IAsyncResult result)
{
    Dispatcher.BeginInvoke(() =>
    {
        MSStoreSampleEntities context = result.AsyncState as MSStoreSampleEntities;
        DataServiceResponse response = context.EndSaveChanges(result);
     });
}

 初めにBasketsオブジェクトを新規で作成して、各メンバーの値をセットしているのが分かります。この中にあるCustomersというメンバーには、別エンティティをセットする必要があり、このプログラム上ではここが初登場になるため、contextに対してAttachToを実行してデータの追跡処理を依頼しておく必要があります。さらに、contextに対してSetLinkを行い、BasketsとCustomersの関係性を伝えます。

 その後、BeginSaveChangesを実行して追加処理を先に進めますが、当然ながら、追加処理も非同期の処理が関係します。

 削除や更新に関してもサンプルでは実装しているので、ぜひ興味があれば確認してみてください。

次のページ
ストアドプロシージャの実行

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlightで行うデータ処理アプリケーション開発の第一歩連載記事一覧

もっと読む

この記事の著者

マイクロソフト株式会社 小高 太郎(コダカ タロウ)

マイクロソフト株式会社 デベロッパーエバンジェリスト。某国内SI企業にてERPパッケージ開発に携わり、プログラマー、SE、PMと様々なロールを担当すると共に、Microsoft Universityの講師を兼務する。マイクロソフト株式会社では、デベロッパーエバンジェリストとして開発者向けに様々な技術...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5145 2010/05/20 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング