4

私は、DDD や IoC を実装する方法を学び、アプリケーションで懸念事項を確実に分離する方法を学ぶためにかなりの時間を費やしてきました。私はまた、Test First Development の邪魔をしようとしています。

どういうわけか、Entity Framework は med に問題を引き起こします。ドメイン オブジェクトを保持するドメイン プロジェクトがあります (現在、その多くは POCO クラスですが、いくつかの動作があります)。これはレガシー コードであり、リファクタリングを試みていますが、MVC は検証のために Dataannotations に大きく依存しています。

datavalidation-attributes はドメイン オブジェクトに設定され、エンティティ フレームワークに関連付けられます。EF に関するほとんどの説明ビデオとドキュメントでも、ドメイン オブジェクトの多くの属性が使用されています。

それで、これは本当に良いことなのだろうか?

多くの属性のアイデアは気に入っていますが、それらをドミアン オブジェクトに配置した結果、ドメイン オブジェクトではなく、エンティティ フレームワークがアプリケーションのコアであると感じました。

これを解決するためのヒントはありますか、それともこうあるべきですか?

アップデート:

以下の提案された回答は、 Ladislav Mrnkaが回答したこの投稿に私を導きました

それが私の問題を解決するのであれば、おそらくそれが最善の方法のように思えます。彼はまた、ドメイン層の属性に関して私が抱えているのと同じ問題を指摘しています。

4

2 に答える 2

4

Code First Fluent API Validationsで気分が良くなりましたか?

于 2012-10-06T22:01:51.627 に答える
2

一部の属性は、EFおよびMVCに関連しています。クラスを説明する属性です。必須フィールド、最小長と最大長など...本当にすべてを分離したい場合は、これらの属性をドメインオブジェクトに保持し、データベース関連(外部キーなど)をFluentAPIおよびMVC関連に配置します(ビューモデルの表示名など)。

MVC 4がたまたまFluentAPIをサポートしている場合(私はMVC 3を使用していますが、4についてはわかりません)、間違いなくそれを使用する必要があります。

于 2012-10-06T22:15:19.740 に答える