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

Lui*_*uis 3 c# architecture asp.net design-patterns

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

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

这个:

public void AddProduct(ProductDTO newProduct)
Run Code Online (Sandbox Code Playgroud)

要么:

public void AddProduct(string ProductName, int Category)
Run Code Online (Sandbox Code Playgroud)

我的印象是第一个比较好,问题在于ObjectDataSource不能很好地发挥它的作用,是否有任何其他方法可以对您的对象进行数据绑定,而第一种方法还是可行的,否则我将不得不进行手动绑定。

Div*_*ivi 5

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

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