0

2つの質問があります。

1:現在、EF図の2つのエンティティにマップされている2つのモデルクラスがあります。

モデルクラスを2から4などのより小さな特定のクラスに分割することにした場合、DDDはEFとどのように連携しますか?EFはそれらとどのように関連しますか?

これらの4つのモデルクラスをEFが理解する2つのエンティティモデルにマッピングするために、個別のDTOを作成する必要がありますか?

他の人がどうやってこの問題を回避できたのか疑問に思っています。

2:EFは、パブリックプロパティを持つモデルのみを認識します。モデルクラスを変更してGetName()、SetName()、GetAddress()などの動作メソッドを使用し、パブリックプロパティをプライベートメンバーに削除すると、EFはぐらつきをスローし、モデルにプロパティが見つからないと文句を言います。この問題を解決するにはどうすればよいですか?または、EFが使用するモデルクラスからマップするパブリックプロパティを持つDTOを作成する必要があるという点で、答えは最初の質問と同じでしょうか?

DDDモデルクラスをEFが理解する別のDTOまたはEFモデルクラスのセットにマップする必要があるのは少し冗長な作業のように思われるため、これが正しいパスであるかどうかを考えています。EFクラスにマップする必要がある場合、それらはモデルレイヤーまたはリポジトリレイヤーにありますか?

4

1 に答える 1

1
  1. 複数のエンティティを同じテーブルにマップする可能性があります(TPH継承、テーブル分割)が、これらの可能性は厳密なルールに従う必要があります。そうしないと、レコードに必要なすべての列が含まれていないためにエンティティをデータベースに挿入できないシナリオになってしまう可能性があります。
  2. EF(EDMXを使用)は非公開プロパティも認識します-EFコードフィストには、少なくともアクセス可能なゲッターまたはセッターを備えたプロパティが必要です。さらに、プロパティに独自のゲッターとセッターを記述することは同じ意味を持つため、これらの動作メソッドは冗長になる可能性があります。
于 2012-04-11T12:13:39.380 に答える