Windows Phone 8にリモートで保存されたデータベースからオブジェクトのリスト ( Catsと呼びましょう) を取得するために作成する必要があるクエリがあります。Microsoft Azure
このオブジェクト ( Cats ) のリストを取得するには、他のオブジェクトのリストを反復処理して外部キーを取得する必要があります。それをCatHomesのリストと呼びましょう。しかし、Bobという名前のすべての猫も必要です。
Bobという名前のすべてのCatを取得する方法を知っています。
private async void getCatsForCatHomesOrCalledBob(Collection<CatHome> homes)
{
// get a list of cats that have visited the cat homes in the collection
IMobileServiceTableQuery<Cat> query = catTable
.Where(cat => cat.Name == "Bob");
Collection<Cat> items = null;
// add the items to a list
items = await query.ToCollectionAsync();
}
しかしCollection
、CatHomeオブジェクトを繰り返し処理し、それらをクエリに追加して構築するにはどうすればよいでしょうか?
私は次のようなことができることを知っています:
IMobileServiceTableQuery<Cat> query =
catTable.Where(cat => cat.Name == "Bob" || cat.HomeId == 1
|| cat.HomeId == 2);
を反復処理することはできません。Collection
やりたいことは次のようなものです。
IMobileServiceTableQuery<Cat> query = catTable.Where(cat => cat.Name == "Bob");
foreach(CatHome home in homes){
query.AddOrStatement(cat.HomeId == home.Id);
}
しかし、これを行う方法が見つかりません。
代替手段はありますか?String
理想的には、変数をに渡すことができるようにしたいWhere()
ので、SQL ステートメントを として構築できますString
が、それを行う手段も見つかりません。
AndroidとiOSには同様の機能があり、WP8には存在しない.Or()
または.And()
メソッドを使用して式を構築できます。IMobileServiceTableQuery
Skip()
CatHomeオブジェクトのリストを繰り返し処理し、各オブジェクトに対してクエリを実行して、結果をマスター リストに追加できることは承知していますが、それは電話のリソースの不適切な使用のように思えます。
どんな助けでも大歓迎です。