Mit ASP.NET MVC Core und Entity Framework Core versuche ich eine einfache Website zu erstellen.Automapper und EF Navigation Eigenschaften
Ich habe mein Modell definiert:
public class Club
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual IEnumerable<Team> Teams { get; set; }
}
public class Team
{
[Key]
public int Id { get; set; }
public int ClubId { get; set; }
[MaxLength(32)]
public string Name { get; set; }
public virtual Club Club { get; set; }
}
Neben den entsprechenden Ansicht Modelle:
CreateMap<Club, ClubViewModel>();
CreateMap<ClubViewModel, Club>();
CreateMap<Team, TeamViewModel>();
CreateMap<TeamViewModel, Team>();
:
public class ClubViewModel
{
public int Id { get; set; }
public string Name { get; set; }
public virtual IEnumerable<TeamViewModel> Teams { get; set; }
}
public class TeamViewModel
{
public int Id { get; set; }
public int ClubId { get; set; }
public string Name { get; set; }
public virtual ClubViewModel Club { get; set; }
}
ich ein AutoMapper Profil mit den entsprechenden Mapper definiert haben
Ich versuche, eine Club
Einheit mit der Navigationseigenschaft Teams
in zu laden eingeschlossen (_context.Club.Include(c => c.Teams).ToList()
). Dies funktioniert wie erwartet, es gibt einen Club mit einer Liste von Teams. Aber wenn ich versuche, diese Instanz einem ClubViewModel zuzuordnen, bekomme ich einen 502.3 Fehler und meine Debugsitzung wird sofort beendet.
Es scheint, als ob ich etwas Triviales vermisse, aber ich sehe es einfach nicht. Es gibt keine Informationen im Windows-Ereignisprotokoll und ich kann keine nützlichen Informationen in der IIS Express-Protokollierung finden (% userprofile% \ documents \ IISExpress)
Was verursacht den Absturz?
diese Zeile '_context.Club.Include (c => c.Teams) .ToList()' hat nichts mit Automapper zu tun, setzen Sie diese Zeile in 'try/catch'-Anweisung und sehen Sie, was die Ausnahme ist. –
Diese Zeile gibt eine Club-Instanz mit der Eigenschaft Teams zurück. Wenn ich versuche, die Instanz mithilfe von IMapper.Map (club_instance) einer ClubViewModel-Instanz zuzuordnen; Keine Ausnahme wird abgefangen, die Debugsitzung endet einfach –
Rhapsody
Klingt wie [Zirkelverweis] (https://github.com/AutoMapper/AutoMapper/wiki/5.0-Upgrade-Guide#circular-references) Problem. –