Был очень интересное обсуждение на LosTechies regarding AutoMapper(an argument for/against 2-way mapping).DTO/команда Вопрос
Это действительно привлекло мое внимание в связи с проблемой я в настоящее время работает через. Я работаю над отправкой товара, чтобы предоставлять пользователям такие данные, как тарифы/сроки доставки. Чтобы централизовать фактические службы, у меня есть веб-сервис WCF, который сохраняется в любых доменах.
Для упрощения модели предметной области, я в основном имею 2 класса:
public class Shipment
{
public IList<Item> Items{get;set;}
}
public class Item
{
//some primitive properties
}
У меня также есть соответствующий набор DTOS, которые были созданы, чтобы облегчить нагрузку через провод. Презентационная часть (или части, независимо от того, что касается веб-службы), использует DTO без знания модели домена.
Мой вопрос приходит сюда. Для создания отправки служба принимает список элементов. Существует логика создания заказов, которые все скрыты за веб-службой. По сути, это означает, что ItemDTO передается через провод (клиент -> сервер), создаются отгрузки, затем ShipmentDTO передается обратно (сервер -> клиент). Теперь у ShipmentDTO есть дочерний список ItemDTO, который создает сценарий двухстороннего сопоставления.
Это более чем простая операция CRUD, и я очень новичок в шаблоне Command Message, поэтому мне интересно, как сообщество решит эту проблему.
Вы передаете DTO в обе стороны с двухсторонним отображением?
Пример использования (уровень представления):
List<ItemDTO> list = new List<ItemDTO>();
//add items to list
ShipmentServiceClient client = new ShipmentServiceClient();
List<ShipmentDTO> shipments = client.GetShipments(list);
//shipments are now displayed to the user
//with respective costs and other useful data
ItemDTO фактически заполнен (или выбран) клиентом. ShipmentDTO - это то, что несет стоимость и т. Д., И заполняется сервером. Мои проблемы возникли в результате обсуждения AutoMapper, где, как представляется, наилучшей практикой является использование однонаправленного отображения, поскольку всегда есть способ не вписывать что-то двунаправленное. –