我有一个数据库视图,我使用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
答案 0 :(得分:1)
如上面的注释所述,实体集查询根返回的枚举(返回IQueryable的属性)中的枚举不得包含空项。如果它确实会出现很多问题,其中一个就会出现在上面的问题中。