我有一个带有几个FK引用的基本表。所以当我检索实体进行更新操作时;该实体包含ICollections
相关的entites。我还有一个主ViewModel,其中每个实体都是一个子viewModel。我的目标是使用Automapper,如:
mapper.Map(MainViewmodel obj,MainEntity obj);
为此我有一个MappingConfiguration,如:
CreateMap<MainViewModel, MainEntity>();
CreateMap<subViewModel1, subEntity1>();
CreateMap<subViewModel2, subEntity2>();
这给了我一个Unmapped属性异常,因为ICollections
没有被映射。有谁能指导我处理这种情况的最佳方法?
感谢。
答案 0 :(得分:0)
如果我理解正确,你就会有这样的课程:
class MainViewModel
{
ICollection<SubViewModel1> SubViewModels { get;set; }
}
class SubViewModel1
{
}
和
class MainEntity
{
ICollection<SubEntity1> SubEntities { get;set; }
}
class SubEntity1
{
}
然后你应该为每个类创建规则,这些类的集合会自动地自动映射。
CreateMap<MainViewModel, MainEntity>();
CreateMap<SubViewModel1, SubEntity1>();
添加1:
var mappedMainEntity = rmapper.Map<MainEntity>(MainViewmodel obj);
如果您将MainEntity
映射到MainViewModel
,则需要添加.ReverseMap()来映射规则,如下所示:
CreateMap()ReverseMap(); CreateMap()ReverseMap();
添加2:
ForMember
方法和MapFrom
选项。 Example