Asp.net core 自动映射和EF导航属性

Asp.net core 自动映射和EF导航属性,asp.net-core,asp.net-core-mvc,entity-framework-core,automapper-6,Asp.net Core,Asp.net Core Mvc,Entity Framework Core,Automapper 6,通过ASP.NETMVC核心和实体框架核心,我试图创建一个简单的网站 我已经定义了我的模型: 公共班级俱乐部 { [关键] 公共int Id{get;set;} 公共字符串名称{get;set;} 公共虚拟IEnumerable团队{get;set;} } 公开课小组 { [关键] 公共int Id{get;set;} public int ClubId{get;set;} [MaxLength(32)] 公共字符串名称{get;set;} 公共虚拟俱乐部{get;set;} } 以及相应的视

通过ASP.NETMVC核心和实体框架核心,我试图创建一个简单的网站

我已经定义了我的模型:

公共班级俱乐部
{
[关键]
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟IEnumerable团队{get;set;}
}
公开课小组
{
[关键]
公共int Id{get;set;}
public int ClubId{get;set;}
[MaxLength(32)]
公共字符串名称{get;set;}
公共虚拟俱乐部{get;set;}
}
以及相应的视图模型:

公共类ClubViewModel
{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共虚拟IEnumerable团队{get;set;}
}
公共类TeamViewModel
{
公共int Id{get;set;}
public int ClubId{get;set;}
公共字符串名称{get;set;}
公共虚拟俱乐部可视模型俱乐部{get;set;}
}
我已使用相应的映射器定义了Automapper配置文件:

CreateMap();
CreateMap();
CreateMap();
CreateMap();
我尝试加载包含导航属性
Teams
Club
实体(
\u context.Club.Include(c=>c.Teams.ToList()
)。这就像预期的一样,它返回一个包含球队列表的俱乐部。但是当我尝试将这个实例映射到ClubViewModel时,我得到了一个502.3错误,我的调试会话立即结束

似乎我遗漏了一些琐碎的东西,但我根本看不到。Windows事件日志中没有任何信息,我在IIS Express日志(%userprofile%\documents\IISExpress)中找不到任何有用的信息


导致崩溃的原因是什么?

您无法执行此映射,因为它是循环的。您必须删除这条线

public虚拟ClubViewModel Club{get;set;}

从您的
TeamViewModel
中,映射应该按预期工作。

这一行
\u context.Club.Include(c=>c.Teams.ToList()
与Automapper无关,请将这一行放在
try/catch
语句中,并查看异常情况。该行返回一个俱乐部实例,并填充Teams属性。当我尝试使用IMapper.map(club_实例)将实例映射到ClubViewModel实例时;没有发现异常,调试会话只是像问题一样结束。你是对的。移除该财产确实有效。谢谢