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.
InformationsquelleAutor mstfcck | 2015-05-09
Schreibe einen Kommentar