Я использую 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 и COUNTRYNAME и в другой ситуации, различную информацию может быть из разных таблиц (или DTOS)? Было бы лучше использовать сгладить DTO только с обязательными полями или сделать запрос с помощью LINQ?
Надеюсь, я сделаю это достаточно ясно.
Спасибо вам за помощь!
Редактировать:Что я хочу знать, если я должен заполнить все вложенные объекты, а не только часть атрибутов объекта.
Не могли бы вы пояснить использование термина «слой» в своем вопросе? В общем, вы используете DTO для передачи данных между процессами и машинами. Слой часто называют логической структуризацией вашего кода. Например, в веб-приложении, обслуживаемом с одной машины, вполне нормально, чтобы ваш уровень доступа к данным возвращал богатые бизнес-объекты вместо DTO. См. [Wikipedia] (http://en.wikipedia.org/wiki/Multilayered_architecture) для отправной точки на эту тему. – Marijn
@Marijn: У меня есть простое трехслойное веб-приложение, содержащее презентацию, бизнес-логику и уровень доступа к данным, но я использую это небольшое приложение, чтобы выяснить, как структурировать более крупную в нашей компании, которая содержит более 400 таблиц и будет иметь множество различных операций и запросов на многих из этих таблиц. – Jason