我将此ASP.NET应用程序设计为3层系统。服务层,数据层和用户界面。我也在服务层中使用POCOS正确映射到我的数据模式。我的数据层遵循存储库模式。
我的问题是:在我的服务层/数据层中,我应该使用我的域实体作为我的方法的参数,还是应该展平所有属性。这里的最佳做法是什么:
这样:
public void AddProduct(ProductDTO newProduct)
或:
public void AddProduct(string ProductName, int Category)
我的印象是第一个更好,问题是ObjectDataSource不能很好地发挥作用,是否有任何替代数据绑定您的对象,这是第一种方法,或者我必须使用手动绑定。< / p>
答案 0 :(得分:4)
绝对使用DTO。否则,每次向产品添加或删除属性时,您都将添加和删除每个调用,传递和调用方法的参数。
使用DTO时,您只需更改/更新调用方法和被调用方法,并考虑您必须通过的参数数量。