エンティティの設定

本稿では、レンタルとDVDだけの簡単なモデルを作っていきます。まずエンティティの名前をDvdに変更します。

エンティティの設定

Nameプロパティ以外は特に設定しなくても問題ありませんが、エンティティには次のような項目を設定できます。

エンティティに設定できる項目

設定名 既定値 説明
Name なし エンティティ名(クラス名)
Cache Expiry 0 キャッシュ時間(分)
Cached False キャッシュするか
Visibility Public アクセシビリティ(Public、Internal)
Base Class なし(Entity) 基底クラス
Identity Type Int32 アイデンティティのデータ型(String、GUID、Int32、Int64)
Order By なし 複数件取り出すときの並び順、SQLのORDER BYと同じ記法
Cascade Deletes True カスケード削除を行うか
Identity Column Name なし(ID) アイデンティティ(主キー列)の名前
Identity Method Default アイデンティティの生成方法(Default、KeyTable、Guid、Sequence、IdentityColumn、GuidComb)
Optimistic Concurrency Checking False 楽観的同時実行制御をするか
Schema なし 永続化するテーブルが含まれるスキーマ名
Soft Delete False データの論理削除を行うか
Table Name なし 永続化するテーブル名
Track Create Time False データの登録日時を格納するか
Track Update Time False データの更新日時を格納するか
Transient False 永続化しないEntityか

便利な項目としては[Track Create Time][Track Update Time][Soft Delete]があります。これらをTrueに設定するとCreateOn、UpdateOn、DeleteOnといった日付型の列に、登録、更新、論理削除日時が保存されます。

同様に[Optimistic Concurrency Checking]をTrueに設定すると、LockVersionという数値列が追加されます。これを使うことで、データを取り出して更新するまでの間に、他のセッションによってデータが更新されていないかを確認することができます。もし、変更されている状態で保存しようとすると例外(OptimisticConcurrencyException)が発生します。

エンティティにプロパティを追加

続けて、Dvdエンティティを右クリックして[新しいEntity Propertyの追加]を選択します。ここでは、DvdエンティティのプロパティとしてTitle(タイトル:String)、InfoUrl(詳細URL:String)、Type(DVDの種別:Int32)を追加します。

Titleプロパティの設定(LightSpeed Modelウィンドウとプロパティウィンドウ)

プロパティの設定

エンティティの各プロパティでは次の項目を設定できます。

エンティティの各プロパティに設定できる項目

設定名 既定値 説明
Name なし 名前
Data Type String データ型(String、Int32、Int64、Decimal、DateTime、Boolean等)
Is Nullable False Null許容型にするか
Indexed False フルテキスト検索の対象にするか(Lucene.Net)
Aggregates なし プロパティの読み込み制御に使う名前
Column Name なし 永続化するテーブルの列名
Transient False 永続化しないプロパティか
Validate Email False E-Mailチェックを行うか
Validate Format なし 正規表現チェック
Validate Length なし 長さチェック。<=1、>=1、1-10形式
Validate Presence False 必須項目か
Validate Unique False 値が一意の項目か
Validate Uri False URIの妥当性チェックを行うか
Validate Value なし 値の大小チェック。1-10形式

ここでは妥当性チェックを定義できます(もし不正なデータ状態でエンティティを永続化しようとすると例外が発生します。IsValidメソッドでチェック結果を確認でき、エラー内容はErrorプロパティに格納されます。エラーメッセージのローカライズについてはサンプルのLocalizationプロジェクトを参考にできます)。 モデルからテーブルを作成する場合の注意点として、文字列型のプロパティでは[Validate Length]で設定した値が列のサイズとして設定されます。設定しない場合は既定値でnvarchar(10)となりますので、この項目を設定しておくほうが良いでしょう。