LightSwitch : マルチデータソースの更新

7月30日(土) に開催された、第1回 LightSwitch 縛りの会 で担当した 「LightSwitchでマルチデータソース」 の振り返りその2です。
(その1 「マルチデータソースの参照」は こちら


 

デフォルトで更新対象になるテーブル/ならないテーブル

 

マルチデータソースの参照は簡単で、単純にデータソースを追加して、テーブル間のリレーションシップを追加するだけでした。

image

image

ただしデフォルトだと保存できないテーブルがあります。

操作ボタンがグレーアウトしています。編集もデータの新規作成も(削除も)できないということです。

image

 


どんなテーブルが更新対象かというと、画面のメインとなるテーブル(上の例で言うと、Order テーブル)と同じデータソースに含まれるテーブルです。別の言い方をすれば、メインとなるテーブルが含まれるデータソースが更新対象です。
さらに言うと、そうではないテーブル、そうではないデータソースはデフォルトでは更新対象外ということになります。

image

image

 


マルチデータソース更新の定石

 

デフォルトでは更新対象ではないデータソース、テーブルを更新する方法は簡単です。

  • データソースごとにコード2行
  • マルチデータソース更新が必要な画面ごとにさらにもう1行だけ

コードを書くだけです。しかも定石通りのコードなので、悩んだり迷ったりすることはありません。

image
※セッション資料からの転載なのでデータソース名が異なっています

  • <画面名>_InitializeDataWorkspace メソッド
    更新対象にしたいデータソースごとに saveChangesTo.Add メソッドを呼び出す
  • <画面名>_Saving メソッド
    更新対象にしたいデータソースごとに DataWorkspace.<データソース名>.SaveChanges メソッドを呼び出す
    さらに最後に “handled = true;” を呼び出す

これだけです。
実行してみると、

image

操作ボタンが有効化されます。データの新規作成も編集もできるようになり、保存ボタンでデータ保存もされるようになります。


マルチデータソースな LightSwitch アプリケーションでデータを更新するには、

  • InitializeDataWorkspace メソッドで、saveChangesTo.Add メソッド
  • Saving メソッドで、<データソース名>.SaveChanges メソッド
  • Saving メソッドの最後に “handled = true;”

を呼び出すだけです。

広告
カテゴリー: LightSwitch タグ: パーマリンク

LightSwitch : マルチデータソースの更新 への1件のフィードバック

  1. ピンバック: LightSwitch : マルチデータソースの参照 « 技術との戯れ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中