对象或值作为我的服务/数据层的参数
我正在将这个 ASP.NET 应用程序设计为一个 3 层系统。服务层、数据层和用户界面。我还在服务层中使用 POCOS,正确映射到我的数据模式。我的数据层遵循存储库模式。
我的问题是:在我的服务层/数据层中,我应该使用域实体作为我的方法的参数,还是应该扁平化所有属性。这里的最佳实践是什么:
这个:
public void AddProduct(ProductDTO newProduct)
或:
public void AddProduct(string ProductName, int Category)
我的印象是第一个更好,问题是 ObjectDataSource 不能很好地发挥作用,是否有任何替代方法可以使用第一种方法对对象进行数据绑定,或者我会吗?必须手动绑定。
I am designing this ASP.NET application as a 3 tiered system. Service Layer, Data Layer and User Interface. I am also using POCOS in the service layer properly mapped to my data schema. My Data layer follows the Repository pattern.
My question is: in my service layer / data layer should I be using my domain entities as parameters for my methods or should I just flatten all the properties. What is the best practice here:
this:
public void AddProduct(ProductDTO newProduct)
or:
public void AddProduct(string ProductName, int Category)
My impression is that the first one is better, the problem is that ObjectDataSource does not play well it it, is there any alternative to databind your objects that works the first approach, or will I have to go with manual binding.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一定要使用 DTO。否则,每次向产品添加或删除属性时,您都会在每个调用、传递和被调用方法中添加和删除参数。
使用 DTO,您只需更改/更新调用和被调用的方法,并考虑必须传递的参数数量。
Definitely use a DTO. Otherwise every time you add or remove properties to products, you'll be adding and removing params from every calling, passing and called method.
With using a DTO, you only have to change/update the calling and the called method and think about the number of params you'd have to pass.