質問: 私は、インフラストラクチャ上の問題とドメイン自体の間の結合を避けるために、Entityデータモデルを実際のドメインモデルから分離する必要があることを理解していますが、すべてのドメインプロパティにパブリックセッターがないかどうか、データモデルからドメインモデルリポジトリの実装がプロジェクトのインフラストラクチャ部分にある場合、内部プロパティの設定を使用することはできません。 ``` class DomainModel { string SomeProperty {get; private set:} } ```
回答: 中間の「データモデル」を持つスキーマでは、Entity Frameworkはドメインエンティティのインスタンス化方法を制御できません。あなたのリポジトリは持っています。だから彼らは必ずしもパブリックセッターを必要としない、あなたはまた、コンストラクタを使用してそれらをrehydrateすることができます。 そのような技術の1つがここで説明されています: https : //vaughnvernon.co/?p=879 もっと簡単な方法は、追加のデータモデルを避け、プライベートセッター( https://lostechies.com/jimmybogard/2014/04/29/domain-modeling-with-entity-framework-scorecard/を参照)を使用することです。あなたは、EFがあなたのエンティティに与える些細な影響を妥当なトレードオフとみなします。