【问题标题】:ODataQueryOptions<T> throws self referencing loop errorODataQueryOptions<T> 引发自引用循环错误
【发布时间】:2018-03-20 05:45:40
【问题描述】:

我正在尝试使用带有 ODataQueryOptions 的邮递员调用 Web API。但我收到错误

检测到具有类型的属性“DeclaringType”的自引用循环 -'Microsoft.Data.Edm.Library.EdmEntityType'。路径'messageArguments[0].options.Context.Model.SchemaElements[0].DeclaredProperties[0]'。

下面是 API ActionMethod -

    [Route("api/get")]
    [HttpGet]
    public IHttpActionResult Get(ODataQueryOptions<Dummy> options)
    {
         return null;
    }

我的邮递员网址 - https://localhost:44360/api/get/$select=Name

Screenshot of the error

【问题讨论】:

    标签: c# asp.net-web-api2 odata


    【解决方案1】:

    我对该操作方法有一个操作过滤器,它将使用 Newtonsoft 将操作参数转换为 JSON 并将它们记录在文本文件中。问题在于将 ODataQueryOptions 转换为 JSON,从而导致自引用循环错误。在转换为 JSON 时添加忽略自引用 JSON 设置会导致另一个错误 - “错误从 'System.Web.HttpInputStream' 上的 'ReadTimeout' 获取值”。无论如何,我删除了动作过滤器,现在它可以正常工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2012-06-17
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2014-05-17
      相关资源
      最近更新 更多