【发布时间】:2012-05-13 14:53:36
【问题描述】:
这几天我一直在研究洋葱架构。我了解依赖项应该始终朝向中心,以及如何使用依赖项注入来实现这一点。但是我有几个问题我还是想不通。
-
模型(或实体)能否引用存储库接口或服务接口?
例如:
Order实体具有通过Oder.DeliveryZip属性建立的DeliveryCity关系,该属性不是外键,但是是唯一的。要获得 City 的邮编,我必须致电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; } } . . . } 上面的代码会有什么问题?它应该改用域服务吗?
应该在核心层还是在基础设施层定义域服务实现?
【问题讨论】:
标签: .net domain-driven-design ddd-repositories onion-architecture ddd-service