我有一个API端点,它返回一个循环错误(因为它链接一个循环返回的连接类),例如。
class A
{
virtual ClassAB;
}
class B
{
virtual ClassAB;
}
class AB
{
virtual ClassA;
virtual ClassB;
}
在API GET中,我需要从ClassA的角度返回ClassB的细节(反之亦然,在ClassB GET中)。
当我得到时,我会做以下事情:
IQueryable<ClassA> results = _dbset
.Include(x => x.ClassAB)
.Include(x => x.ClassAB.Select(y => y.ClassB))
.AsExpandable()
.Where(predicate)
.OrderBy(x => x.ID);
所以我得到了自我引用循环错误。现在在我的数据库上下文中我有:
Configuration.ProxyCreationEnabled = false;
Configuration.LazyLoadingEnabled = false;
在我的Global.asax
protected void Application_Start()
我有:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
然而,我仍然得到错误;任何想法如何解决这个问题?
答案 0 :(得分:0)
尝试添加
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.None;