0

我正在尝试将一个列表模型对象映射到一个引用父级的子级。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 => vm.EventElements, opt => opt.MapFrom(src => src.EventElements));

其次,为列表中的每个对象返回null:Mapper.CreateMap().MaxDepth(1);

如何在没有循环循环的情况下获取带有孩子的事件数据?

4

1 回答 1

1

您需要在 DbContext 中禁用代理创建,如下所示:

  DbContext.Configuration.ProxyCreationEnabled = false;

并在您的存储库中使用“包含”lambda 表达式

public IQueryable<Customer> GetAllCustomers()
    {
        return DbSet.AsQueryable().Include(s => s.StatusType).Include(s => s.CustomerCategory);
    }
于 2016-02-01T11:51:44.167 回答