从Azure Mobile Service获取信息到Windows 8应用程序

时间:2014-03-18 15:03:18

标签: c# azure windows-8 windows-8.1 azure-mobile-services

我正在使用Azure移动服务在C#中开发Windows 8应用程序。这是我第一次使用Azure,我已经找到了如何从我的应用程序将数据放入表中。我不能做的是根据表中的一位数据检索单个数据。例如,根据ID从移动服务中检索名称。

2 个答案:

答案 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中表的精确克隆,并且每个属性名称都与表中的列名完全相同。