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

标签 c# asp.net design-patterns architecture

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

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

这个:

public void AddProduct(ProductDTO newProduct)

或:

public void AddProduct(string ProductName, int Category)

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

最佳答案

一定要使用 DTO。否则,每次您向产品添加或删除属性时,您都会从每个调用、传递和调用的方法中添加和删除参数。

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

关于c# - 对象或值作为我的服务/数据层的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4846322/

相关文章:

java - 选择设计模式时的困境

c# - 使用 .NET Native 构建时,参数不会传递给 x86 上的非托管 DLL

c# - 使用 TypeConverter.ConvertFromString() 解析自定义格式的字符串

c# - 枚举 int 列表<GradeRange>

asp.net - 将所有图像隐藏在 DIV 中,除了没有滚动条的图像

javascript - 如何在javascript中禁用日历扩展器中的上一个日期

c# - Uri.CheckHostName() 何时返回 UriHostNameType.Basic 而不是 UriHostNameType.Dns 或 UriHostNameType.Unknown?

asp.net - 用于网站的数据驱动开源温度计

java - 实体惰性方法和 Dimetra 法

java - 如何解决优先队列池?这是最好的选择吗?