Entity Framework 数据服务

Entity Framework DataService

我在我的 WCF 服务中使用 EntityFrameworkDataService 来通过 odata 端点公开数据库视图。以下是正在使用的 nuget 包

.Net Framework 4.5

Microsoft.Data.Edm - v5.8.1

Microsoft.Data.Services - v5.8.1

Microsoft.Data.Odata - v5.8.1

Microsoft.Data.Services.客户端 - v5.8.1

Microsoft.Odata.EntityFrameworkProvider – v1.0.0-beta2

我们最近迁移到 SQL 服务器 2016,其中一个 Odata 查询在

失败

System.Data.Services.Providers.BasicExpandProvider.ExpandedEnumerator1.get_Current()\r\n at System.Data.Services.Serializers.EntitySerializer.WriteFeedElements(IExpandedResult expanded, QueryResultInfo elements, ResourceType expectedType, String title, Func1 getRelativeUri, Func`1 getAbsoluteUri, Boolean topLevel)\r\n at System.Data.Services.Serializers.EntitySerializer.WriteTopLevelElements(IExpandedResult expanded, QueryResultInfo elements)\r\n at System.Data.Services.Serializers.Serializer.WriteRequest(QueryResultInfo queryResults)\r\n 在 System.Data.Services.ResponseBodyWriter.Write(Stream 流)

OData 查询是这样的 https://test.com/service/Entity1?$select=Prop1,Prop2&$expand=Entity2,Entity3&$filter=Prop4 eq 'test' and Prop5 ne ''

还有其他具有类似扩展和过滤器的 Odata 查询运行良好。

我不知道是什么原因造成的。

有人遇到过这个吗?

发生这种情况是因为 $filter 列之一包含空值,这在异常消息中不是很明显