如何从power query设置时从标头中删除MaxDataServiceVersion:3.0

时间:2015-06-08 15:09:00

标签: c# .net odata

我有一个项目,我从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调用控制器。

1 个答案:

答案 0 :(得分:2)

我有一个非常类似的问题,从Power BI和Power Query查询我的ODATA v4服务。在挖掘了可用的源文件here之后,我发现ODataRoute支持这个HasRelaxedODataVersionContraint方法。

在WebApiConfig.cs中声明OData路由时调用它。

config.MapODataServiceRoute("OdataRoute", "odata", GetEdmModel()).HasRelaxedODataVersionConstraint();

对方法的评论是有道理的;放宽版本约束。该服务将允许客户端发送OData V4和以前的最大版本标头。以前的最高版本的标题将被忽略。

另一个例子是由于缺乏关注,ODATA管理不善。我怀疑所涉及的开发人员是将其作为宠物项目而不是资助的核心MS项目。