ビジネス メソッドを使用してドメイン モデルを構築しようとしており、EF 4.1 で永続化を行っています。ここまでは順調ですね。
問題は、すべてのプロパティがドメイン クラスで public として公開されていることです。とにかく、それは少なくとも私がチュートリアルから学んだことです。つまり、ビジネス メソッド以外の不注意なプログラマによってクラス プロパティが変更されないという確固たる証拠はありません。カプセル化違反。
ISomething を導入してみましたが、TableAttribute はインターフェイスではなくクラスにのみ適用されるため、EF に DBSet を実行するように指示できません。TableAttribute をクラスに任せても、何かに ISomething を実装させると、EF は ISomething を認識しないため、DBSet.Add() を実行できません。
私が考えることができる唯一の方法は、インターフェイスを使用して CRUD 用に EF 4.1 の上に完全な抽象化レイヤーを作成することです。内部で、Something と ISomething の間の型変換を行います。それは非常に複雑で、EF の設計にはぽっかり穴が開いているように思えました。または、何かを見逃したに違いありません。
これをどのように解決しますか?
どうもありがとう。