しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

LightSpeed ORM で Enum 型を使ってみる

LightSpeed ORM を使ってデータベースからモデルを作成した場合、データベースの型が割とそのまま CLR 型にマッピングされます。

データベース型 CLR 型
int System.Int32
varchar System.String
datetime System.DateTime

しかし、データベースの型としては int であっても、コードからは enum や別の型として扱いたいことがあるかと思います。特に enum として扱いたいケースは割と多いと思います。Entity Framework では 5 から対応した機能ですが、LightSpeed では以前から対応しています。

Enums and Other User Defined Types - Mindscape

例えば以下のような簡単な enum を用意します。これを int32 型のカラムに割り当てて、コードからは MyEnum 型として扱うようにしてみます。

public enum MyEnum
{
    Value1 = 1,
    Value2 = 2
}

次は lsmodel ファイルを開いて、表示される LightSpeed Model ウィンドウから作成した MyEnum 型を追加します。

f:id:shiba-yan:20130126155548p:plain

f:id:shiba-yan:20130131203556p:plain

設定として重要なのは CLR Type Name で名前空間を含めた型名を指定する必要があります。これで独自の型が追加できたので、後はエンティティのプロパティの型を、先程追加した型に設定するだけです。

f:id:shiba-yan:20130131203927p:plain

これで LightSpeed が MyEnum 型を使ったエンティティクラスを生成してくれるので、特に気にせず使うことが出来ます。