对象或值作为我的服务/数据层的参数

时间:2011-01-30 23:32:41

标签: c# asp.net design-patterns architecture

我将此ASP.NET应用程序设计为3层系统。服务层,数据层和用户界面。我也在服务层中使用POCOS正确映射到我的数据模式。我的数据层遵循存储库模式。

我的问题是:在我的服务层/数据层中,我应该使用我的域实体作为我的方法的参数,还是应该展平所有属性。这里的最佳做法是什么:

这样:

public void AddProduct(ProductDTO newProduct)

或:

public void AddProduct(string ProductName, int Category)

我的印象是第一个更好,问题是ObjectDataSource不能很好地发挥作用,是否有任何替代数据绑定您的对象,这是第一种方法,或者我必须使用手动绑定。< / p>

1 个答案:

答案 0 :(得分:4)

绝对使用DTO。否则,每次向产品添加或删除属性时,您都将添加和删除每个调用,传递和调用方法的参数。

使用DTO时,您只需更改/更新调用方法和被调用方法,并考虑您必须通过的参数数量。