ASP.NET MVCコアとEntity Frameworkコアを使用して、簡単なWebサイトを作成しようとしています。AutomapperとEFのナビゲーションプロパティ
私は私のモデルを定義しました:
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; }
}
私は、対応するマッパーと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)に役立つ情報が見つかりません
クラッシュの原因は何ですか?
この行 '_context.Club.Include(c => c.Teams).ToList()'はAutomapperとは何の関係もありません。この行を 'try/catch'文の中に入れて例外が何であるかを見てください。 –
この行は、Teamsプロパティが設定されたClubインスタンスを返します。 IMapper.Map(club_instance)を使用して、インスタンスをClubViewModelインスタンスにマップしようとしました。例外は検出されず、デバッグセッションは単に終了します –
Rhapsody
[循環参照](https://github.com/AutoMapper/AutoMapper/wiki/5.0-Upgrade-Guide#circular-references)のようなサウンドです。 –