我有一个OData V4
在Asp.net WebApi
(OWIN
)。
一切都很好,除非我尝试查询 4 级$expand
.
我的查询看起来像:
http://domain/entity1($expand=entity2($expand=entity3($expand=entity4)))
我没有收到任何错误,但我的回复中没有预测最后一次展开。
更多信息:
我已经设置MaxExpandDepth
为 10。
我所有的实体都是EntitySets
.
我正在使用ODataConventionModelBuilder
.
我打开了一个 SQL 分析器,可以看到查询(和结果)是正确的。这是在执行查询后发生的一些过滤器。
我在网上搜索过,没有找到合适的。
我尝试了不同的实体 4 级别$expands
,但它们也不起作用。
编辑:
我已经覆盖了OnActionExecuted
:
public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
{
base.OnActionExecuted(actionExecutedContext);
var objectContent = actionExecutedContext.Response.Content as ObjectContent;
var val = objectContent.Value;
var t = Type.GetType("System.Web.OData.Query.Expressions.SelectExpandWrapperConverter, System.Web.OData");
var jc = Activator.CreateInstance(t) as JsonConverter;
var jss = new JsonSerializerSettings();
jss.Converters.Add(jc);
var ser = JsonConvert.SerializeObject(val, jss);
}
序列化值包含 entity4。
我仍然不知道是什么组件删除了管道中的 entity4。
相关分类