AutomapperとEFのナビゲーションプロパティ

asp.net-core asp.net-core-mvc automapper-6 entity-framework-core

質問

ASP.NET MVCコアとEntity Frameworkコアを使用して、簡単なWebサイトを作成しようとしています。

モデルを定義しました。

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

対応するビューモデルと同様に:

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

対応するマッパーを使ってオートマッパープロファイルを定義しました。

    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
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ