私はAutoMapperを使用して、自分のドメインモデルを私のDTOにマッピングするだけでなく、DTOをドメインモデルにマッピングしています。子コレクションを含むDTOをドメインモデルにマッピングするためのデザインパターン
私は自分のORMにEF4を使用していますが、マッピングされているモデルに追加/更新/削除が必要な子コレクションが含まれていると、このマッピングは実際には醜いものになります。私は私のプロジェクトで前進しながら、私はブログ記事の写真、注文のためのパッケージなど、この問題にもっと取り組んでいます。DTO->ドメインモデルから行くと、 BeforeMapコールは、ドメインモデルのコレクションからすべてのエンティティを削除し、DTOから各エンティティのPKを取得するコレクション用のカスタムValueResolverを追加して、DBから取得します(エンティティフレームワークでは、新しいエンティティ)を作成し、それをドメインモデルのコレクションに再度追加し、個々のフィールドに更新を適用します。
これは本当に醜い解決策ですが、手動でこれらのコレクションの更新を処理しようとしています。誰もよりクリーンなアプローチの提案はありますか?
Automapperを使用してドメインモデルをマッピングすると、ドメイン駆動設計を使用していない可能性があります。ただ言って。 – jfar
私はいくつかの自動マジックマッピングソリューションを使ってこのマッピングをきれいに処理したいと思うのは現実的ではありませんか?純粋に自分のドメインモデルを自分のDTOから更新するためのサービスを作成する必要がありますか? – inolen
@jfarあなたはどのように考えますか?まず、ドメインモデルはDDDと同義ではありません。ドメインモデルをマッピングするべきではないことを暗示し、「ドメイン駆動設計を使用しない」としてこれを取り除き、それ以上の説明をしてもそれほど有用ではないようです。階層化されたアーキテクチャでは、サービスレイヤがドメインモデルの上に位置することは珍しくありません。また、サービスレイヤーがトランスレートオブジェクトを介してドメイン、UIおよび他のレイヤーと通話することも珍しくありません。これらのレイヤーの間に「明るい線」を維持するのに役立ちます。 – nerraga