ホーム > LightSwitch, Silverlight > LightSwitchの裏側を探る 3:ビルドの実行と選択リスト、計算項目の追加

LightSwitchの裏側を探る 3:ビルドの実行と選択リスト、計算項目の追加

前の記事でデータベース内にテーブルがどのタイミングで追加されるのかがわからない、と書きましたが、実はビルドすれば追加される、ということがわかりました。
前の記事の直後にビルドを実行すると、下記のように「会員テーブルSet」という名前のテーブルが追加されます。
テーブルの追加

そしてこのとき、Bin\Dataフォルダに存在していたSchemaChange.xmlファイルが消えます。
どうも、IDE上で行ったスキーマ変更の情報が一旦SchemaChange.xmlに書き込まれ、ビルド時に実際のデータベースを変更するとこのSchemaChange.xmlファイルが消える、という動きになっているようです。
こんなことがわかったのはあるいみケガの功名かも。

さて、次に作成したテーブルのなかで、「性別」項目を男性/女性が選べるように設定してみます。
「性別」の項目を選び、プロパティからChoice Listリンクをクリックします。
選択リストの作成   

選択リストを設定するダイアログが表示されるので、ここで以下のように登録します。
選択リスト設定

これだけでOKなんですが、この「男性/女性」といった情報はどこに保存されるか、というと、、、
Dataフォルダの ApplicationDefinition.lsml 内に格納されます。
「性別」に関する情報部分が以下のようになっていました。

———————————————————————————————————-

<EntityProperty Name="性別" PropertyType="Microsoft.LightSwitch:Int32">
    <EntityProperty.Attributes>
        <Required />
        <NotSearchable />
        <SupportedValue DisplayName="男性" Value="1" />
        <SupportedValue DisplayName="女性" Value="2" />
    </EntityProperty.Attributes>
</EntityProperty>

———————————————————————————————————-

テキストエディタでフォルダ内のファイルに対して全検索かけてみましたけど、このフォルダにしか「男性/女性」の文字はありません。
結構、このApplicationDefinition.lsmlファイル、重要っぽいです。

 

さて、次に行ったのは、計算によって値を表示するデータ項目の追加。
誕生日から計算して年齢を表示する項目を追加してみます。
年齢を計算項目として追加

テーブルに「年齢」項目を追加し、プロパティで Is Computed にチェックを入れて Edit Method リンクをクリックします。
IDE内にソースコードを記述する画面が表示されるので、以下のようにプログラムを追記しました。
計算ロジック

会員テーブルクラスの Partial なソースとしてプログラムを記述することになります。
こうなってくると、「会員テーブル」という名前をつけたのが間違いだったかなぁ。
「会員」としておくとテーブル名も「会員Set」となり、またクラスも「会員クラス」だったわけで。。。
どうもレコード1つにたいしての名前をつけたほうが良かったようですね。
まぁ、いまさらしょうがないので、このまま続けます。

さて、このプログラムを保存すると、Commonフォルダ内に UserCode という名前のフォルダが作成され、そこに上記の「会員テーブル.cs」ファイルが追加されました。
どうもこの「UserCode」フォルダが開発者が追記したプログラムの置き場所になりそうです。

さて、データ構造を触るのはここまでにして、次回は画面を追加してみようと思います。
そのまえにここまでで他に追加されてるプログラムがありました。

Common\GeneratedArtifacts の下のDataRuntime.csとServer\GeneratedArtifacts の下のDataService.cs の内容が生成されています。
データを取り出す部分のコードや取得/設定時のパーシャルメソッドの定義が行われているようです。
LightSwitch用のdll内の定義クラスが使われているため、どうにもソースが読みにくかったりするのですが。。。

カテゴリー:LightSwitch, Silverlight
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中

%d人のブロガーが「いいね」をつけました。