独自エンティティ。ああなんて甘美な響きでしょう。
それは完璧なまでにコーディングでコントロールされ、すべてのプロパティは完全にコントロールされたエンティティのみで構成されます。
ドメインごとに構成されたクラスは、とりうる値かどうかなどを考えるまでもなくすべてValidです。
しかし完全なドメインモデルで、独自に構築したエンティティは非常にコストのかかるものです。なので私はほぼ型付データセットを利用します。
型ついていないデータセットはクリー○の入っていないコーヒーです。
ただこのデータセットもいろいろ曲者です。
●Nullableのサポートがない。
カラムにint?やdecimal?が設定できないのです。
●テーブルアダプタの戻り値は逆にNullableになってしまう。
Guid?とかが戻ってくると想定されてしまいます。SQLを人間が精緻に見れば戻らないことはないと判断つくのですが・・・
●独自enumが設定できない
値の制限にenumを用いたい時もあるのです。
このような制限をかいくぐってラッパエンティティなんかを作ってしのぎつつやっています。
次々回あたりの勉強会でこのあたりの苦悩を口に出しながら実演してみたいと思います。(^^