【发布时间】:2015-06-02 17:54:10
【问题描述】:
我是 DDD 的新手,并且已经阅读了很多关于它的内容,但我无法弄清楚这一点。我正在做一个典型的 CRUD 操作(创建),我必须验证一些字段,其余实体保留在我的存储库中。
我知道应用服务,不应该有任何业务逻辑,一个领域实体,不应该直接访问存储库,一个领域服务,可能是最好的选择,但我不知道如何做好。我很困惑。
如何更正下一个代码:
class CustomerApplicationService {
void AddNew ( CustomerDTO myNewCustomerDTO ) {
CustomerRepository myCustomerRepo = new CustomerRepository();
var allCustomers = myCustomerRepo.FindAll();
for each (Customer c in allCustomers) {
if (c.SomeField == myNewCustomerDTO.SomeField) {
// do something, check duplicate data, etc
}
}
var myNewCustomer = new Customer();
// map myNewCustomer ... fields with myNewCustomerDTO
myCustomerRepo.Save( myNewCustomer );
}
}
谢谢!
【问题讨论】: