我正在使用DTO(数据传输对象)在我的应用程序的不同层之间传输信息。什么是正确填写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和国家或地区名称,并在另一种情况下,可能从不同的表,在不同的订单信息的列表会发生什么(或DTO的)?最好使用只包含必需字段的扁平DTO或使用LINQ进行查询?
我希望我说得够清楚。
感谢您的帮助!
编辑:我想知道的是,如果我应填写所有嵌套对象,并不仅是一个对象的属性的一部分。
你能否在你的问题中澄清术语“图层”的用法?通常,您使用DTO在进程和机器之间传输数据。一个图层通常被称为您的代码的逻辑结构。例如,在单台机器提供的Web应用程序中,让您的数据访问层返回丰富的业务对象而非DTO是完全可以的。请参阅[Wikipedia](http://en.wikipedia.org/wiki/Multilayered_architecture)以获取有关此主题的起点。 – Marijn
@Marijn:我有一个简单的3层Web应用程序,包含一个演示文稿,一个业务逻辑和一个数据访问层,但我正在使用这个小应用程序来弄清楚如何在我们公司构建一个包含400多个表,并且在许多这些表上将会有很多不同的操作和查询。 – Jason