我是Windows Azure移动服务的新手。我正在尝试为Windows Phone 8构建一个应用程序。我已经在azure上创建了一个表。
public class myTabble { public string Id { get; set; }
[JsonProperty(PropertyName = "name")]
public string name { get; set; }
[JsonProperty(PropertyName = "age")]
public int age { get; set; }
[JsonProperty(PropertyName = "fname")]
public string fname { get; set; }
}
我可以使用
检索整行private MobileServiceCollection items;
private IMobileServiceTable<myTabble> todoTable = App.MobileService.GetTable<myTabble>();
items = await todoTable
.Where(todoItem => todoItem.name == null)
.ToCollectionAsync();
items = await todoTable.ToCollectionAsync();
但我不知道如何从表中检索单个数据。例如,如果我想将名称为“X”的用户的fname存储在字符串变量中。如何只检索与特定用户相关的单个实体。谢谢。
答案 0 :(得分:0)
您可以使用.Select to属性来仅获取某个列:
var names = await todoTable
.Where(t => t.name == NameIWant)
.Select(t => t.fname)
.ToCollectionsAsync();
请参阅:HowTo: Select Specific Columns from the .NET Reference Guide
(如果你已经知道用户的Id,你可以在where子句中使用LookupAsync)
答案 1 :(得分:0)
我可以看到第一种方法并不理想,因为它最初仍会返回一个列表
IMobileServiceTableQuery<todoTable> query = todoTable.Where(t => t.fname == "[Your Name]");
var res = await query.ToListAsync();
var item = res.First();
//fName is a string in your object MyTable just get it like this
string fname = item.fname;
您还可以在windows azure Mobile服务中编写SQL查询,API以检索单个记录,然后从您的应用程序中调用它,就像这样
var result = App.MobileService.InvokeApiAsync<todoTable>("[Your MobileServices API name]",
HttpMethod.GET,
null);