0
如果您有一个引用客户的订单,那么该模型是否包含客户的ID或客户对象的副本,如价值对象(思考DDD)?DDD和MVC模型包含单独实体或实体本身的ID?
我想这样做的部份:
public class Order {
public int ID {get;set;}
public Customer customer {get;set;}
...
}
现在我这样做:
public class Order {
public int ID {get;set;}
public int customerID {get;set;}
...
}
这将是更方便地在完整的客户对象,而不是ID向视图模型传递给表单。否则,我需要弄清楚如何通过ID获取供应商信息到订单引用的视图。
这也意味着存储库了解如何处理在调用保存时(如果我们选择第一个选项)在订单对象内发现的客户对象。如果我们选择第二个选项,我们需要知道视图模型中的哪个位置。
他们肯定会选择一个现有的客户。但是,也可以确定他们可能想要在显示屏上就地更改信息。有人可能会争辩让控制器提取客户对象,将客户更改单独提交给存储库,然后将更改提交给订单,并按照订单保留customerID。