Я пытаюсь использовать AutoMapper для сопоставления из DTO в мой домен.Как просто сопоставить ISet NHibernate с IList с помощью AutoMapper
Мой DTO может выглядеть так:
public class MyDTO
{
public string Name { get; set; }
public bool OtherProperty { get; set; }
public ChildDTO[] Children { get; set;}
}
public class ChildDTO
{
public string OtherName { get; set; }
}
Мои доменные объекты, как это:
public class MyDomain
{
public string Name { get; set; }
public bool OtherProperty { get; set; }
public ISet<ChildDomain> Children { get; set; }
}
public class ChildDomain
{
public string OtherName { get; set; }
}
Как мне установить AutoMapper, чтобы иметь возможность сопоставить с этим массива до Сета. Кажется, что AutoMapper берет Array и преобразовывает их в IList, а затем отказывается при конвертации в ISet.
Вот исключение
Unable to cast object of type 'System.Collections.Generic.List`1[DataTranser.ChildDTO]' to type 'Iesi.Collections.Generic.ISet`1[Domain.ChildDomain]'.
Я надеюсь найти простой общий способ сделать это так, что я могу минимизировать инфраструктуру, необходимую для сопоставления с DTO, чтобы домен. Любая помощь приветствуется.
UPDATE:
Итак, как бы я модель MyDomain -> ChildDomain, не прекращая с анемией модели предметной области? Я понимаю, что без бизнес-логики в MyDomain или ChildDomain модель домена в настоящее время анемична, но целью было добавить бизнес-логику, когда мы продвигаемся вперед. Я просто хочу убедиться, что модель View Model может быть переведена в модель домена и сохранена.
Что вы предложите для этого сценария, перейдя от простого сопоставления между представлением и доменом, а затем добавив в бизнес-правила?
Еще раз спасибо за помощь.
И ваша конфигурация automapper ...? – Paco
Отображение только для отдельных элементов: Mapper.CreateMap(); Mapper.CreateMap (); Не уверен, как я собирался создать сопоставление для Set, thats основная предпосылка вопроса. Спасибо за помощь. –
Kas
Я попробовал Mapper.CreateMap() и закончил с исключением –
Kas