У меня есть представление базы данных, которое я публикую в других системах, используя службы данных WCF. Средний уровень между базой данных и службами данных WCF построен на Entity Framework 4.1
Когда я запрашиваю представление, используя простой запрос без заказа, я получаю все результаты. Если я включу оператор 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