【发布时间】:2011-06-07 03:44:40
【问题描述】:
我正在使用 DTO(数据传输对象)在应用程序的不同层之间传输信息。
就性能和填充这些对象的方式而言,最佳做法是什么?我是否应该使用与我的数据访问层不同的方法只填写最低要求的信息?
假设我有以下课程:
public class Order
{
public int OrderNo;
public Customer Customer;
public double Total;
}
public class Customer
{
public int CustId;
public string CustName;
public Country Country;
}
public class Country
{
public int CountryId;
public string CountryName;
}
如果我需要生成包含 OrderNo、CustName 和 CountryName 的订单列表,而在另一种情况下,不同的信息可能来自不同的表(或 DTO),会发生什么情况?最好使用仅包含必填字段的扁平 DTO 还是使用 LINQ 进行查询?
我希望我说得足够清楚。
感谢您的帮助!
编辑: 我想知道是否应该填充所有嵌套对象,而不仅仅是对象的部分属性。
【问题讨论】:
-
您能否澄清您的问题中“层”一词的用法?通常,您使用 DTO 在进程和机器之间传输数据。层通常被称为代码的逻辑结构。例如,在由单台机器提供服务的 Web 应用程序中,让您的数据访问层返回丰富的业务对象而不是 DTO 是完全可以的。有关此主题的起点,请参阅 Wikipedia。
-
@Marijn:我有一个简单的 3 层 Web 应用程序,其中包含一个表示、一个业务逻辑和一个数据访问层,但我正在使用这个小应用程序来弄清楚如何在我们公司包含 400 多个表,并且将对其中许多表进行大量不同的操作和查询。
标签: c# .net architecture dto