gpt4 book ai didi

c# - ReferenceLoopHandling.Ignore 在 WebApi Global.asax 中不起作用

转载 作者:可可西里 更新时间:2023-11-01 08:50:01 27 4
gpt4 key购买 nike

我有一个返回循环错误的 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;

但是,我仍然收到错误;有什么解决问题的想法吗?

最佳答案

尝试添加

GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.None;

关于c# - ReferenceLoopHandling.Ignore 在 WebApi Global.asax 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33347671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com