Службы данных WCF не могут ответить на запрос, включая orderby - PullRequest
1 голос
/ 13 октября 2011

У меня есть представление базы данных, которое я публикую в других системах, используя службы данных 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

1 Ответ

1 голос
/ 14 октября 2011

Как отмечено в комментариях выше, перечисление, возвращаемое корнем запроса набора сущностей (свойство, которое возвращает IQueryable), не должно содержать нулевых элементов в нем.Если это произойдет, многое пойдет не так, одна из них показана в приведенном выше вопросе.

...