I have a basic table with a few FK references. So when I retrieve an entity for an update operation; that entity contains ICollections
of related entites. I also have a main ViewModel inside which each entity is a sub viewModel. My aim is to use Automapper like:
mapper.Map(MainViewmodel obj,MainEntity obj);
For this I have a MappingConfiguration like:
CreateMap<MainViewModel, MainEntity>();
CreateMap<subViewModel1, subEntity1>();
CreateMap<subViewModel2, subEntity2>();
This gives me an Unmapped properties exception because the ICollections
are not getting mapped. Could anyone please guide me on the best way to deal with this kind of situation?
thanks.
If I understand you correctly, you has classes like this:
class MainViewModel
{
ICollection<SubViewModel1> SubViewModels { get;set; }
}
class SubViewModel1
{
}
and
class MainEntity
{
ICollection<SubEntity1> SubEntities { get;set; }
}
class SubEntity1
{
}
Then you should create rules for each class, and collection of such classes automaper map automatically.
CreateMap<MainViewModel, MainEntity>();
CreateMap<SubViewModel1, SubEntity1>();
Addditions 1:
var mappedMainEntity = rmapper.Map<MainEntity>(MainViewmodel obj);
If you map MainEntity
to MainViewModel
you need add .ReverseMap() to map rule, like this:
CreateMap().ReverseMap(); CreateMap().ReverseMap();
Additions 2:
ForMember
method and MapFrom
option. Example