Я пытаюсь создать сопоставление между объектом LLBLGen и DTO с помощью AutoMapper.
Мой DTO выглядит следующим образом:
// Parent
public int Id { get; set; }
public List<Child> Children{ get; set; } // One to Many
// Child
public int Id { get; set; }
public int Parent { get; set; } // Foreign key to parent Id
ParentEntity содержит ChildCollection с тем же именем, что и список DTO, и идентификатором (с другими полями LLBL, которые необходимо игнорировать). Поэтому, когда ParentEntity сопоставляется с родительским DTO, он также должен сопоставлять ChildCollection со списком дочерних элементов.
Это то, что я получил до сих пор:
ParentEntity parentEntity = new ParentEntity(id);
AutoMapper.Mapper.CreateMap<ParentEntity, Parent>();
AutoMapper.Mapper.CreateMap<ChildCollection, List<Child>>();
var parent = AutoMapper.Mapper.Map<Parent>(parentEntity);
Это приводит к тому, что идентификатор отображается, но список имеет счетчик 0.
Как я могу заставить его работать?
ОБНОВИТЬ:
Пробовал то же самое, что и моя предыдущая попытка, но ручное сопоставление списка дочерних элементов также приводит к той же проблеме: идентификатор сопоставляется, но список пуст.
Mapper.CreateMap<ParentEntity, Parent>()
.ForMember(dto => dto.Children, opt => opt.MapFrom(m => m.Children));
ChildCollection
класс. Каков тип его свойстваList
? Я думаю, что лучше предоставить полный соответствующий исходный код ваших объектов и DTO, чтобы решить, почему сопоставление не работает. - person Ilya Chumakov   schedule 30.12.2015