私はタマネギの建築を数日間研究しています。依存性は常に中心に向かうべきであり、これを達成するために依存性注入を使用する方法を理解しています。しかし、まだ理解できない質問がいくつかあります。
モデル(またはエンティティ)はリポジトリインターフェイスまたはサービスインターフェイスを参照できますか?
例:
Order
エンティティには、外部キーではありませんが一意であるプロパティDeliveryCity
を通じて確立された関係があります。市をzipで取得するには、電話する必要がありますOder.DeliveryZip
ICityRepository.FindByZip(zip)
モデルに次のコードがあります
class Order { . . . [Inject] public ICityRepository CityRepository { get; set; } private City _dCity; public City DeliveryCity { get { if (_dCity == null) _dCity = this.CityRepository.FindByZip(this.DeliveryZip); return _dCity; } } . . . }
上記のコードの問題は何でしょうか?代わりにドメインサービスを使用する必要がありますか?
ドメインサービスの実装は、コア内で定義する必要がありますか、それともインフラストラクチャ層で定義する必要がありますか?