私は3つのプロジェクトで構成されるMVC Webアプリケーションを構築しています。 1つはGUI用、もう1つはBusinessLogic用、もう1つはデータアクセス用です。ASP.NET MVC - GUIのDALから依存関係を削除
私のデータアクセスのために私はEFによって生成されたファイルを持っています。したがって私は "Customer"という名前の生成されたクラスを持っています。このクラスの検証属性を作成するには、MetaDataTypeを作成する必要があります(同じ名前空間で実行する必要があるため、DALレイヤーで行う必要があります)。これにより、GUIからデータアクセスレイヤーを参照します私のGUIはDALとBLの両方の層を参照しているので、プロジェクトを分割することを全面的に諦めてしまいます。どうにかして、私はGUIとDALレイヤーを別々にしておくことができますが、[必須]などのバリデーション属性を使用することはできますか?
ありがとうございます。
私の答えでコメントしたように、これは実用的かもしれませんが、永続性の無知の概念に完全に反しています。これはUIをドメインモデルと組み合わせるためです。しかし、誰もDDDプログラマでなければならない。 – rsenna
@rsenna:私が間違っていない限り、あなたはまだ永続性の無知を持っています。それがPOCOを使用する全体のポイントです。データベース呼び出しを処理するリポジトリパターンなどの他の抽象化がある場合は、POCOエンティティを維持しながら、データベースバックエンド全体を置き換えることができます。確かに、POCOエンティティはもはやEFによって生成されませんが、EFに依存することはないので問題にはなりません。 –
私が見ている問題は、技術的ではなく建築的なものです.DALとUIの両方で**同じ**エンティティを共有しています。ですからプレゼンテーションは永続性のために使用されるものと同じエンティティに結合されています - そして、私はこれが "無知"と呼ばれるとは思わないしかし、もう一度、私はそれを前にやって、シンプルなシステムやCRUD指向のためにやり直しています。それ以外は、UI用のビューモデルと、ビジネスとデータアクセスレイヤのドメインエンティティを使用します。 – rsenna