4

DDDの概念を学ぼうとしています。データベースを最初に使用するプロジェクトを作成しました。インフラストラクチャに、エンティティを自動生成するように選択した edmx ファイル ウィッチを追加しました。「ドメイン」で、集計を作成しようとしています。

しかし、ここで私はいくつかの問題を抱えています。「User」という名前の集約を作成しようとしていますが、ef が自動生成したエンティティに User が既に存在します。集約「ユーザー」の名前を別の名前に変更し、データベースからデータを取得するときに、データベースエンティティから集約にマップする必要があります。

私はそれを間違っていますか?または、エンティティを自動生成するべきではありませんか、それともエンティティが集約されていますか?

Plz は助言し、助けます。

ここに画像の説明を入力

4

2 に答える 2

7

DDD に忠実でありたい場合は、永続化ソリューションから独立したドメイン オブジェクトをモデル化する必要があります。DDD は、リポジトリを介して永続性を処理します。EF によって生成された "エンティティ" をドメイン モデルとして使用しないでください。代わりに、独自のモデルを設計し、永続性のために EF を利用するリポジトリを実装します。

于 2012-08-31T06:13:14.637 に答える
3

私の見解では、ドメイン駆動設計と「データベース ファースト」は正反対です。ドメイン駆動設計は複雑な動作に重点を置き、データ モデルはデータの静的構造に重点を置きます。

クリーンな状況から始める特権があれば、最初にレガシー データベースを作成して必要以上に複雑にすることはありません。DDD は、発見と学習がプロセスの一部である複雑なドメインを対象としていることを考慮してください。

継続的な学習プロセスをサポートするためには、進化に明らかにコストがかかるデータベース設計ではなく、進化用に特別に設計されたソフトウェア コンポーネント (安価なユニット テストを実行できるオブジェクト指向ドメイン モデルなど) に依存することをお勧めします。

誰も最初からすべてを正しく行うことはできません。だから、捨てるコストがほとんどないものから始めたほうがいい。

于 2012-10-29T13:59:15.217 に答える