1
WCFデータサービスを使用して他のシステムに公開するデータベースビューがあります。データベースとWCF Data Services間の中間層はEntity Framework 4.1に基づいて構築されています
orderbyのない単純なクエリを使用してビューをクエリすると、すべての結果が得られます。私はORDERBY演算子が含まれている場合、クエリは次のエラーメッセージ(UseVerboseErrorsがtrueに設定されている)で失敗します。
WCF Data Servicesがorderbyを含むクエリに応答しない
<?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
SetEntitySetPageSizeを設定すると、sortby演算子がなくてもクエリが失敗します。ビューに何か問題がありますか?ビューにはSortByコマンドが含まれていません... –
これはリフレクションプロバイダを使用しており、MyViewエンティティセットはList程度のものです。リストにnull要素が含まれていないことを確認してください。 –
はい、そうです、並べ替えに使用されるはずのNULL値が列にいくつかありました。この値を除外すると、クエリが機能し始めました。再度、感謝します!私の質問に答えるためのいくつかのポイントを得るために、新しい回答を作成してください。 –