我正在尝试使用带有ODataQueryOptions的postman调用Web API。但是我收到错误
检测到具有类型的属性"声明类型"的自引用循环 -'Microsoft.Data.Edm.Library.EdmEntityType'.路径 'messageArguments[0].options.Context.Model.SchemaElements[0].声明属性[0]'。
下面是 API 操作方法 -
[Route("api/get")]
[HttpGet]
public IHttpActionResult Get(ODataQueryOptions<Dummy> options)
{
return null;
}
我的邮递员网址 - https://localhost:44360/api/get/$select=Name
错误的屏幕截图
我在该操作方法上有一个操作过滤器,它将使用Newtonsoft将操作参数转换为JSON并将它们记录在文本文件中。问题在于将 ODataQueryOptions 转换为 JSON,这会导致自引用循环错误。在转换为 JSON 时添加忽略自引用 JSON 设置会导致另一个错误 - "从'System.Web.HttpInputStream'上的'读取超时'获取值时出错"。无论如何,我删除了操作过滤器,它现在可以正常工作。