UWPでMicrosoft.OData.Clientを使用する時、LINQ式でエラー

公開日: : Blog, Microsoft, 未分類 , , ,

UWPからは非同期メソッドを実行する必要があるので、通常はExecuteAsyncをコールするが、
LINQ式を使ってエンドポイントに投げようとすると以下の例外が発生する。

This target framework does not enable you to directly enumerate over a data service query. This is because enumeration automatically sends a synchronous request to the data service. Because this framework only supports asynchronous operations, you must instead call the BeginExecute and EndExecute methods to obtain a query result that supports enumeration.

IQueryableをDataServiceQueryにキャストしてBeginExecuteとEndExecuteを非同期実行する必要がある。
以下のようなメソッドを作成してLINQを渡してやれば良い。

protected Task<IEnumerable<T>> ExecuteAsync<T>(IQueryable<T> query)
{
    var odataQuery = (DataServiceQuery<T>)query;
    var taskFactory = new TaskFactory<IEnumerable<T>>();
    return taskFactory.FromAsync(odataQuery.BeginExecute(null, null), iar => odataQuery.EndExecute(iar));
}

関連記事

no image

UWPとAzure Web AppsでOData

超メモ。走り書き。 Azure上にSQLデータベースコードファーストなAPIをODataで作成する。

記事を読む

Flowで毎月の定期タスク設定

Flow を使い始めてみた。 Requrrenceで時間をトリガーにすることが出来るがSecond

記事を読む

【ストアアプリ】バッジ通知(BadgeUpdateManager)について

こんにちは。 前回のタイル通知にバッジ通知を追加しました。 以下を参考に。 https

記事を読む

no image

Microsoft.OData.Clientでフォーム認証を行う

構成 サーバー ** Azure API Apps ** ASP.NET Web API クライ

記事を読む

[OxyPlot]errro CS0117: ‘Resource.Attribute’ に ‘mediaRouteSettingsDrawable’ の定義がありません

Xamarin.Formsでグラフ描画を行う方法のひとつにOxyPlotというライブラリがある。

記事を読む

no image

YomiganaWPFTextBox

こんにちは。 WPFでテキストボックスに入力した内容をカナ変換する方法について今日は掲載します

記事を読む

【WPF/XAML】Colorsクラスのカラーテーブル

http://msdn.microsoft.com/ja-jp/library/system.win

記事を読む

【WPF/XAML】セパレータを縦にする

<Window x:Class="VerticalSeparator&q

記事を読む

[UWP]Releaseビルド時に、OData.ClientでSystem.Reflection.MissingMetadataExceptionが発生する

UWPでDebugビルドでは問題ないけど、Releaseビルドにすると、Microsoft.ODat

記事を読む

no image

【UWP】矢印キーでのフォーカス移動

FocusManagerで上下左右のフォーカス遷移が出来るので、その仕組みを利用してやるビヘイビアを

記事を読む

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PAGE TOP ↑