实体框架DataService

时间:2017-05-10 13:33:20

标签: c# entity-framework odata wcf-data-services sql-server-2016

我在我的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.Client - v5.8.1

Microsoft.Odata.EntityFrameworkProvider - v1.0.0-beta2

我们最近已迁移到SQL Server 2016,其中一个Odata查询失败

System.Data.Services.Providers.BasicExpandProvider.ExpandedEnumerator 1.get_Current()\r\n at System.Data.Services.Serializers.EntitySerializer.WriteFeedElements(IExpandedResult expanded, QueryResultInfo elements, ResourceType expectedType, String title, Func 1 getRelativeUri,Func`1 getAbsoluteUri,Boolean topLevel)\ r \ n在System.Data.Services.Serializers.EntitySerializer.WriteTopLevelElements(IExpandedResult展开,在System.Data.Services.ResponseBodyWriter.Write(Stream stream)的System.Data.Services.Serializers.Serializer.WriteRequest(QueryResultInfo queryResults)\ r \ n中的QueryResultInfo元素)\ r \ n

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

还有其他Odata查询具有类似的扩展和过滤器,可以正常工作。

我不知道造成这种情况的原因。

有没有人遇到过这个?

1 个答案:

答案 0 :(得分:0)

这是因为其中一个$ filter列包含空值,这在异常消息中并不是很明显