アプリケーションがいくつかのアセンブリに分割されています。
MyProject.Infrastructureアセンブリには、 および などのすべての Domain オブジェクトとPerson、 およびSaleなどのインターフェイス リポジトリが含まれていIPersonRepositoryますISaleRepository。
MyProject.Dataアセンブリには、これらのリポジトリの具体的な実装が含まれています。
リポジトリはデータベースからデータを取得し、新しいドメイン クラスをインスタンス化します。たとえばIPersonRepository.GetPersonByNumber(customerNumber)、データ ソースから顧客を読み取り、新しいPersonクラスを作成して入力し、呼び出し元に返します。
Person.UpdateAddress(address). _
このメソッドをPerson仮想メソッドとしてクラスに配置し、必要な機能を提供するためにそれらのメソッドをオーバーライドする派生クラスをデータ層内に作成しても問題ありませんか?
DDD の規則を破らないようにしたいのです。
これらのメソッドをリポジトリに配置するオプションがあることも知っていますIPersonRepository.UpdatePersonAddress(person, address)。