I'm using AutoMapper to mapping my Entity Framework POCO objects and ViewModels.
Question 1:
What's difference in mapping using that:
Apurador apurador = Mapper.Map<NovoViewModel, Apurador>(novoViewModel);
or that:
Mapper.Map(novoViewModel, apurador);
Question 2:
When I had to update a Entity in Entity Framework using AutoMapper I had to do in that way:
Apurador apurador = context.Apurador.Find(id);
Mapper.Map(ed开发者_StackOverflowitarViewModel, apurador);
context.SaveChanges();
In that way, my entity don't lost the Id property, but in that way below the Id property is lost:
Apurador apurador = context.Apurador.Find(id);
apurador = Mapper.Map<EditarViewModel, Apurador>(editarViewModel);
context.SaveChanges();
Why??
first of all, does the last even compile? you instantiate two classes with the same name!
As for Apurador apurador = Mapper.Map<EditarViewModel, Apurador>(editarViewModel);
what it does is it creates a new instance of Apurador
with the property values from editarViewModel
while Mapper.Map(editarViewModel, apurador);
maps the property value from editarViewModel to the actual retrieved entity apurador (if I haven't gotten it mixed up).
精彩评论