WCF数据服务无法响应包括orderby的查询

时间:2011-10-13 07:22:02

标签: linq-to-entities wcf-data-services odata

我有一个数据库视图,我使用WCF数据服务发布到其他系统。数据库和WCF数据服务之间的中间层构建在Entity Framework 4.1之上

当我使用没有orderby的简单查询查询视图时,我得到所有结果。如果我包含orderby运算符,则查询将失败并显示以下错误消息(UseVerboseErrors设置为true):

 <?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
- <error xmlns="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
  <code /> 
  <message xml:lang="de-DE">An error occurred while processing this request.</message> 
- <innererror>
  <message>Object reference not set to an instance of an object.</message> 
  <type>System.NullReferenceException</type> 
  <stacktrace>at lambda_method(Closure , StatesView ) at System.Linq.EnumerableSorter`2.ComputeKeys(TElement[] elements, Int32 count) at System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count) at System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext() at System.Linq.Enumerable.<TakeIterator>d__3a`1.MoveNext() at System.Data.Services.DataService`1.SerializeResponseBody(RequestDescription description, IDataService dataService) at System.Data.Services.DataService`1.HandleNonBatchRequest(RequestDescription description) at System.Data.Services.DataService`1.HandleRequest()</stacktrace> 
  </innererror>
  </error>

我做错了什么?该视图在与我要用于排序的列不同的列上定义了数据服务键。

这里是查询:

http://localhost:6000/MyView?$orderby=number desc

1 个答案:

答案 0 :(得分:1)

如上面的注释所述,实体集查询根返回的枚举(返回IQueryable的属性)中的枚举不得包含空项。如果它确实会出现很多问题,其中一个就会出现在上面的问题中。