2017-07-21 13 views
2

ドメインには意味がありませんが、リポジトリにとって不可欠ないくつかのプロパティがあります。たとえば、パーティションキーです。DDD - リポジトリのエンティティDTO表現

エンティティの基本実装を拡張し、関連するフィールドを追加するDTOを自分のリポジトリに置いてもよろしいですか?

+2

読み取りモデルからの書き込みを分離しないため、この問題が発生します。 'CQRS'ではこの種の問題はありません。 –

答えて

2

これはまったく問題ありません。このDTOがリポジトリにとどまっている限り。ファウラーのPoEAAで : アクセスドメイン・オブジェクトのコレクションのようなインタフェースを使用してドメイン およびデータマッピング層の間を仲介:

リポジトリパターンは、以下のように記載されています。

リポジトリが正しく仕事をしている限り(ドメインモデルの保存と取得)、実装は重要ではありません。 リポジトリの実装の詳細がプロジェクトの残りの部分に伝播しないようにしてください。リポジトリ内のエンティティにDTOを追加する場合は、DTOやその他の無関係な余分なフィールドがない状態でエンティティを返すようにしてください。

+0

注意:引用されたテキストで説明されているように、「リポジトリ」は、「ドメイン駆動型設計」の第6章で説明されている「リポジトリ」と一致しません。 Evansは、ドメインと永続ストアの間ではなく、アプリケーションとドメイン間のリポジトリを使用します。 – VoiceOfUnreason

+1

私はEvansが同じリポジトリパターンについて話していると思います。 「アプリケーションとドメインの間の」意味は何かを説明できますか? –

関連する問題