2

私はEntity Frameworkが初めてです(問題がある場合はコードを最初に)。私はそれを使ってきたので、最終的なドメインモデルと考えて、POCO クラスを構築してきました。遅延読み込みのようなものでは、これらのエンティティをプレゼンテーション レイヤーで直接使用して、実際に必要なものを遅延読み込みできるというアイデアが気に入っています。

しかし、私は最近、以前は聞いたことのなかったデータ転送オブジェクトについても知りました。それは絶対に理にかなっています。最終的なドメイン モデルの動作には、DAL に属さないビジネス ルールが含まれている可能性があります。たとえば、SalesOrderEntity Framework に与える POCO に のような最終メソッドが含まれているAddItem(Product)必要ProductDiscontinuedDateありSalesOrder.OrderDateます。それは間違いなくBLLに属するもののように聞こえます.

つまり、これは、私が Entity Framework に与える POCO クラスは、DTO に似たものにする必要があることを意味していると思います。たとえば、プロパティのみを持ち、メソッドを持たない単純な小さなデータ ホルダーが、BLL のドメイン オブジェクトに (おそらく AutoMapper を使用して) マップされますSalesOrderDtoEmployeeDto、プレゼンテーション層に渡されますか?

私はここで正しい軌道に乗っていますか、それとも何かが欠けていますか. DTO の考え方は完全に理にかなっているので混乱していますが、Entity Framework のコンテキストで DTO が使用されているのを見たことがありません。

4

3 に答える 3