嵌套 $expands 的 Asp.net WebApi OData V4 问题

我有一个OData V4Asp.net WebApiOWIN)。

一切都很好,除非我尝试查询 4 级$expand.

我的查询看起来像:

http://domain/entity1($expand=entity2($expand=entity3($expand=entity4)))

我没有收到任何错误,但我的回复中没有预测最后一次展开。

更多信息:

  1. 我已经设置MaxExpandDepth为 10。

  2. 我所有的实体都是EntitySets.

  3. 我正在使用ODataConventionModelBuilder.

  4. 我打开了一个 SQL 分析器,可以看到查询(和结果)是正确的。这是在执行查询后发生的一些过滤器。

  5. 我在网上搜索过,没有找到合适的。

  6. 我尝试了不同的实体 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。


湖上湖
浏览 170回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP