我有一个查询,我需要创建一个从远程存储在Windows Phone 8上的数据库中获取对象列表(让我们称之为Cats ) 。Microsoft Azure
为了获得这个对象列表(Cats),我必须遍历其他对象列表以提取外键,我们称之为CatHomes列表。但我也想要所有叫Bob的猫。
我知道如何让所有Cats叫Bob:
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有类似的功能,您可以使用.Or()
or方法构建表达式,这些方法在WP8.And()
中不存在,以及类似的东西存在。IMobileServiceTableQuery
Skip()
我知道我可以遍历CatHome对象列表并对每个对象进行查询,将结果添加到主列表中,但这似乎是对手机资源的不当使用。
任何帮助,将不胜感激。