LightSwitch でデータ定義をする(20110801)

皆さんこんにちは。
前回は、LightSwitch で利用可能なデータソースの種類に関して紹介しました。
今回は新規にテーブルを作成する際のデータの定義方法について紹介します。

LigthtSwitch におけるデータの考え方

データの定義をする場合はこちらの画面で定義を行います。データソースを追加する場合はソリューション エクスプローラーのデータ ソースを右クリックしてデータソースを追加をクリックします。すでにデータソースがある場合はデータソース名を右クリックしてテーブルを追加します。すでにテーブルがある場合は、そのテーブルをダブルクリックしても構いません。
下記のような画面が表示されます。
01

データベースの定義を行う画面によく似ていると思いますが、実際には Entity Framework の Entity、つまり概念データモデルを設計しているといった方が正確かもしれません。LightSwitch はこの概念データモデルをベースに Top Down アプローチで DDL を作成実行します。
既存のデータソースを使う場合はその逆で、 Bottom Up アプローチでデータ定義を生成しています。

ただし、LigthSwitch は Entity Framework やデータベース層をツールで隠蔽しているので、単純にアプリケーションで利用する 「データの定義」をしていると考えるのが良いかもしれません。

デザイナーでのデータ定義

まず、初めにすることがデータに名前を付けて、そこに含まれるデータ項目を設定していきます。
02

この画面の例で Person となっているようにデータ自体に名前を付けます。先ほど書いたようにこれは Entity となるので単数形の名前にしておく方が良いでしょう。(データベースのテーブルは複数形が一般的ですが、Entity は 1 つのレコードを表していると思ってください。)

続いてそれぞれのデータ項目を追加していきます。この画面上では 「名前」、「型」、「必要」の3つの属性が設定できます。
「名前」はデータ項目の名前になります。何も設定しなければこの項目が画面上の表示名もこの名前になります。
「型」はデータ項目の型です。上の画面を見ると Integer や String といったプリミティブな型に加えて Email Address や Phone Number という特定用途の型が定義されているのが分かるかと思います。これらの型の考え方に関しては後程紹介します。
「必要」は省略の可否になります。

プロパティでのデータ定義

データ項目に関してこれしか定義できないかというと、そうではありません。各データ項目のプロパティで様々なデータ定義を行うことが出来ます。
これが、データ型が String の時のプロパティです。
03

そのデータ項目をキー値にするか、先ほど説明した画面上の表示名を別の名称にするかなどを設定できます。
入力される値が限られている場合は、「選択肢リスト…」をクリックして選択肢を定義して、画面上にドロップダウン リストとして表示することもできます。
04

また、入力されたデータに対する検証もここで設定することが出来ます。String の場合、省略の可否、文字列の最大長がデフォルトの検証項目として設定されています。また、「カスタム検証」という形でコードを記述して、より複雑な検証を実現することもできます。

LightSwitch におけるデータ型

それでは、話を「型」に移しましょう。LightSwitch で設定できる型は大きく2つに分けることが出来ます。一つがプリミティブ型、もう一つがビジネス型です。

プリミティブ型は最終的にデータソースに永続化する際の型に非常に近い型です。その型自体にはビジネス的なルールや意味を持っていません。LightSwitch で標準で提供されているプリミティブな型は次の通りです。

  • Binary
  • Boolean
  • Date
  • Date Time
  • Decimal
  • Double
  • Guid
  • Integer
  • Long Integer
  • Short Integer
  • String

もう一つのビジネス型は、データ型事態にビジネス的ルールや意味を持っているものです。最終的にはプリミティブ型に準拠してデータソースに永続化されるのですが、その過程であらかじめ設定された検証やフォーマットが施されます。LightSwitch で標準で提供されているビジネス型は次の通りです。

  • Email Adress
  • Image
  • Money
  • Phone Number

標準ではこの4つのデータ型が提供されていますが、もちろん自分でもデータ型を作ることが出来ます。独自のデータ型の作成に関しては、別途ご紹介したいと思います。

まとめ

これで、LightSwitch を使ったデータ定義が出来るようになりました。簡単にデータベースの定義をしていくのと同じ感覚でデータ定義が出来ることがお分かり頂けたかと思います。
次回は画面生成に関してご紹介したいと思います。

製品情報はこちらから:https://www.microsoft.com/japan/visualstudio/lightswitch
技術情報はこちらから:https://msdn.microsoft.com/ja-jp/lightswitch