我有一个项目,我从OData V3升级到V4。现在当我尝试从Power Query连接时,我在尝试查看数据时遇到错误:
Microsoft.Mashup.Evaluator.Interface.ErrorException: Specified method is not supported. --->
Microsoft.Mashup.Evaluator.Interface.ErrorException: Specified method is not supported. --->
System.NotSupportedException: Specified method is not supported.
Microsoft.Mashup.Engine1.Library.OData.V4.ODataExpression.VisitColumnAccess(ColumnAccessQueryExpression expression)
Microsoft.Mashup.Engine1.Library.OData.V4.ODataExpression.Visit(QueryExpression queryExpression)
从我看到的问题是在Power Query的标题中设置 MaxDataServiceVersion:3.0 。如果我没有这个,我可以获得数据。
如何从.NET中的标题中删除它,我使用Web API和OData v4,并从Power Query调用控制器。
答案 0 :(得分:2)
我有一个非常类似的问题,从Power BI和Power Query查询我的ODATA v4服务。在挖掘了可用的源文件here之后,我发现ODataRoute支持这个HasRelaxedODataVersionContraint方法。
在WebApiConfig.cs中声明OData路由时调用它。
config.MapODataServiceRoute("OdataRoute", "odata", GetEdmModel()).HasRelaxedODataVersionConstraint();
对方法的评论是有道理的;放宽版本约束。该服务将允许客户端发送OData V4和以前的最大版本标头。以前的最高版本的标题将被忽略。
另一个例子是由于缺乏关注,ODATA管理不善。我怀疑所涉及的开发人员是将其作为宠物项目而不是资助的核心MS项目。