Automapper父子自引用循环



我正在尝试映射一个列表模型对象,该对象具有引用父对象的子对象。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);

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

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

  DbContext.Configuration.ProxyCreationEnabled = false;

并在存储库中使用"Include"lambda表达式

public IQueryable<Customer> GetAllCustomers()
    {
        return DbSet.AsQueryable().Include(s => s.StatusType).Include(s => s.CustomerCategory);
    }

相关内容

  • 没有找到相关文章

最新更新