我最近将所有我的nuget软件包更新到最新的EF6,breeze 1.4.5,system.web.http.odata 5.0.0.0,以及所有其他可用的好位。
现在,如果一个查询包含x.y.z这样的扩展,我会收到如下错误:
A first chance exception of type 'Microsoft.Data.OData.ODataException' occurred in System.Web.Http.OData.dll
Additional information: The request includes a $expand path which is too deep. The maximum depth allowed is 2. To increase the limit, set the 'MaxExpansionDepth' property on QueryableAttribute or ODataValidationSettings.
我查看了建议的修复程序。如果我在查询的breeze'端点'上添加Queryable属性,它似乎会导致各种其他问题。我的猜测是它会干扰微风的预期行为,并以不同的方式格式化结果。
然后我通过GlobalConfiguration.Configuration ...查看了使用HttpConfiguration EnableQuerySupport扩展方法,但似乎没有效果(参见Supporting OData Query Options)
有人知道如何更改默认的webapi行为吗?
感谢。
答案 0 :(得分:20)
你需要在你的breeze控制器IQueryable方法中添加一个BreezeQueryable属性,如下所示......
[BreezeQueryable(MaxExpansionDepth = 3)]
public IQueryable<Customer> Customers()
{
...
}