Я разрабатываю приложение для Windows 8 на C# с использованием мобильных служб Azure. Это первый раз, когда я использую Azure, я понял, как помещать данные в таблицы из моего приложения. Чего я не могу сделать, так это получить отдельные фрагменты данных на основе одного бита данных в таблице. Например, получить имя из мобильного сервиса, например, на основе идентификатора.
Получение информации из мобильной службы Azure в приложение Windows 8.
Ответы (2)
Если вы хотите получить элемент на основе идентификатора, вы можете использовать метод 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();
UpdateAsync
с этим объектом.
- person carlosfigueira; 19.03.2014
Чтобы получить строку из таблицы, где 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, и каждое имя свойства точно соответствовало именам столбцов в таблице.