使用ASP.NET MVC Core和Entity Framework Core,我正在嘗試創建一個簡單的網站。

我已經定義了我的模型:

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; }
}

以及相應的View Models:

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; }
}

我已經使用相應的映射器定義了一個Automapper配置文件:

    CreateMap<Club, ClubViewModel>();
    CreateMap<ClubViewModel, Club>();
    CreateMap<Team, TeamViewModel>();
    CreateMap<TeamViewModel, Team>();

我嘗試加載一個Club實體,包含導航屬性Teams_context.Club.Include(c => c.Teams).ToList() )。這按預期工作,它會返回一個包含團隊列表的俱樂部。但是當我嘗試將此實例映射到ClubViewModel時,我收到502.3錯誤 ,我的調試會話立即結束。

看起來我錯過了一些微不足道的東西,但我根本看不到它。 Windows事件日誌中沒有信息,我在IIS Express日誌記錄中找不到任何有用的信息(%userprofile%\ documents \ IISExpress)

造成撞車的原因是什麼?

一般承認的答案

您無法執行此映射,因為它是循環的。你必須刪除這一行

public virtual ClubViewModel Club { get; set; }

從您的TeamViewModel和映射應該按預期工作。



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow