我正在使用Azure移动服务在C#中开发Windows 8应用程序。这是我第一次使用Azure,我已经找到了如何从我的应用程序将数据放入表中。我不能做的是根据表中的一位数据检索单个数据。例如,根据ID从移动服务中检索名称。
答案 0 :(得分:1)
如果您想根据ID检索项目,可以使用LookupAsync
方法:
var table = MobileService.GetTable<MyDataType>();
var item = await table.LookupAsync(id);
如果你想根据另一个属性检索一个项目,可以使用Where
子句作为@Sopuli提到的,但如果你想要的只是你需要创建一个集合,你就不需要项目本身:
var table = MobileService.GetTable<MyDataType>();
var items = await table.Where(d => d.Property == propValue).ToEnumerableAsync();
var item = items.FirstOrDefault();
答案 1 :(得分:0)
从表中检索id = 10000;
的行int WantedID = 10000;
public IMobileServiceTable<SomeTable> MyTable = App.MobileService.GetTable<SomeTable>();
MobileServiceCollection<SomeTable, SomeTable> MyList = new MobileServiceCollection<SomeTable, SomeTable>(MyTable.Where(t => t.id == WantedID));
你的班级SomeTable会是这样的:
using Newtonsoft.Json;
...
public class SomeTable: INotifyPropertyChanged
{
private Int64 _id;
[JsonProperty(PropertyName = "id")]
public Int64 id
{
get
{
return _id;
}
set
{
if (value != _id)
{
_id = value;
NotifyPropertyChanged("id");
}
}
}
private string _name;
[JsonProperty(PropertyName = "name")]
public string name
{
get
{
return _name;
}
set
{
if (value != _name)
{
_name= value;
NotifyPropertyChanged("_name");
}
}
}
现在,您的MyList将填充从Azure下载的数据,您可以将其绑定到LonglistSelector。如果您需要访问某个特定数据项的属性,可以执行MyList [0] .name
此外,我建议您的类SomeTable是Azure中表的精确克隆,并且每个属性名称都与表中的列名完全相同。