我正在尝试使用引用父项的子项映射列表模型对象。 Json序列化会抛出“检测到自引用循环”错误消息。我的模型类:
public class Event
{
public int Id { get; set; }
public string Name { get; set; }
public ICollection<EventElement> EventElements { get; set; }
...
}
public class EventElement
{
public int Id { get; set; }
...
public int EventId { get; set; }
public virtual Event Event { get; set; }
}
我在Automapper配置中尝试了一些技巧。首先,抛出相同的错误: Mapper.CreateMap() .ForMember(vm =&gt; vm.EventElements,opt =&gt; opt.MapFrom(src =&gt; src.EventElements));
其次,为列表中的每个对象返回null: 。Mapper.CreateMap()MAXDEPTH(1);
如何在没有循环循环的情况下获得包含子项的事件数据?
答案 0 :(得分:1)
您需要在DbContext中禁用代理创建,如下所示:
DbContext.Configuration.ProxyCreationEnabled = false;
在存储库中使用“Include”lambda表达式
public IQueryable<Customer> GetAllCustomers()
{
return DbSet.AsQueryable().Include(s => s.StatusType).Include(s => s.CustomerCategory);
}