这几天我一直在研究洋葱架构。我了解依赖项应该始终朝向中心,以及如何使用依赖项注入来实现这一点。但是我有几个问题我仍然无法弄清楚。
模型(或实体)可以引用存储库接口或服务接口吗?
eg:一个
Order
实体有一个DeliveryCity
通过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; } } . . . }
上面的代码会有什么问题?它应该改用域服务吗?
领域服务实现应该在核心层还是在基础设施层定义?