I've got classes like this
public class ClassOne
{
public string Id { get; set; }
//...many others properties
}
public class ClassTwo
{
public string Id { get; set; }
//...many others properties differents from classeOne
public string Email { get; set; }
}
public class ClassThree
{
public string Id { get; set; }
//...many others properties differents from classeOne and classTwo
public string Email { get; set; }
}
public class ViewModel
{
//...same properties as classeOne
public string EmailClasseTwo { get; set; }
public string EmailClassThree { get; set; }
}
public class ObjectReturnByLinqQuery
{
public ClassOne classOne { get; set; }
public ClassTwo classTwo { get; set; }
public ClassThree classThree { get; set; }
}
How to create map between the ViewModel
and ObjectReturnByLinqQuery
without doing one by one member for each classes ?
something like
config.CreateMap<ObjectReturnByLinqQuery, ViewModel>()
.ForMember(ViewModel => ViewModel.EmailClasseTwo , ModelDB => ModelDB.MapFrom(src => src.ClasseTwo.Email))
.ForMember(ViewModel => ViewModel.EmailClasseThree , ModelDB => ModelDB.MapFrom(src => src.ClasseThree.Email))
and for all other members take them from src.ClassOne
Unfortunately there is no out of the box way to do that. But you can create a Custom Naming Convention like this:
and then use it like this: