AutoMapper: Eine Ausnahme vom Typ 'AutoMapper.AutoMapperMappingException' ist in AutoMapper.dll wurde aber nicht behandelt werden, in Benutzer-code
Ich habe ein problem, wie diese. Aber diese Antwort ist es nicht für mich arbeiten.
Arbeite ich an einem kleinen Projekt. Ich habe zwei Domänen-Modell (Post, Quelle):
public class Post
{
public Post()
{
Sources = new HashSet<Source>();
}
public int Id { get; set; }
public string Title { get; set; }
public string About { get; set; }
public bool IsPublished { get; set; }
public bool IsFinished { get; set; }
public DateTime? CreatedOn { get; set; }
public int? CreatedBy { get; set; }
public virtual ICollection<Source> Sources { get; set; }
}
public class PostViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public string About { get; set; }
public bool IsPublished { get; set; }
public bool IsFinished { get; set; }
public DateTime? CreatedOn { get; set; }
public int? CreatedBy { get; set; }
public virtual ICollection<SourceViewModel> Sources { get; set; }
}
public ActionResult Edit(int id)
{
Mapper.CreateMap<Post, PostViewModel>()
.ForMember(dest => dest.Id, opt => opt.MapFrom(src => src.Id))
.ForMember(dest => dest.Title, opt => opt.MapFrom(src => src.Title))
.ForMember(dest => dest.About, opt => opt.MapFrom(src => src.About))
.ForMember(dest => dest.IsPublished, opt => opt.MapFrom(src => src.IsPublished))
.ForMember(dest => dest.IsFinished, opt => opt.MapFrom(src => src.IsFinished))
.ForMember(dest => dest.CreatedOn, opt => opt.MapFrom(src => src.CreatedOn))
.ForMember(dest => dest.CreatedBy, opt => opt.MapFrom(src => src.CreatedBy))
.ForMember(dest => dest.Sources, opt => opt.MapFrom(src => src.Sources))
.ReverseMap();
var Post = _PostService.Get(id);
var model = Mapper.Map<Post, PostViewModel>(Post);
return View(model);
}
Aber ich erhalte eine Fehlermeldung wie:
Eine Ausnahme des Typs " AutoMapper.AutoMapperMappingException' ist in AutoMapper.dll wurde aber nicht behandelt werden, in Benutzer-code
Quell-Domäne-Objekt und SourceViewModel
ähnliche Post
und PostViewModel
.
Hoffentlich das erklärt mein problem. Wie kann ich das beheben, um das problem zu beheben?
- Haben Sie Lesen Sie die Ausnahme Nachricht? Sie in der Regel erklären die genaue problem im detail.
- Natürlich habe ich gelesen. Das problem ist die relation zwischen Post und Quelle. Ich meine, wenn ich ein mapping für den anderen verbunden-Modellen das problem ist gelöst. Aber in dieser Zeit habe ich gewartet, für die Zuordnung fast 10 Minuten und ich brach in zwei Hälften zu verarbeiten. Der Prozess dauert zu lange. Könnte die Ursache sein?
- Sie müssen die Nachricht in Ihre Frage, dann. Und genug code, jemand wäre in der Lage das Problem zu reproduzieren - nämlich der rest ist "ähnlich" ist nicht genug.
- Eine echt schnelle Sache - alle diese MapFrom sind nicht notwendig. Sie müssen nur diese, wenn die Namen nicht übereinstimmen. Ansonsten ist es einfach sinnlos code.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meiner Erfahrung nach das häufigste problem ist in deinen Quellen Sammlung.
Wenn Sie möchten, verwenden Sie die automapper "best practice" ist explizit zu definieren und registrieren Sie eine Karte zwischen zwei Entitäten, Auch, stellen Sie sicher, dass Sie definiert haben, eine Karte zwischen der entity und view-Modell der sub-Sammlung von Quellen.
Ich habe eine neue AutoMapperConfiguration für meine mappings und ich wurden alle domain-und Sicht-Modellen.
Und ich habe mich registriert, um diese Konfiguration auf die Globale.asax:
Nun, der Prozess dauert zu lange hier:
Ich wartete fast 10 Minuten... Was ist das problem? 😐