C# 从Windows Azure存储检索数据
如何查询我的Windows Azure存储,例如:C# 从Windows Azure存储检索数据,c#,windows-phone-8,odata,azure-storage,azure-mobile-services,C#,Windows Phone 8,Odata,Azure Storage,Azure Mobile Services,如何查询我的Windows Azure存储,例如: (SELECT Name FROM User WEHRE DeviceID = App.Current.DeviceID) 尝试过这个,似乎不起作用 var Name = await App.MobileService.GetTable<User>() .Select(User => User.Name) .Where(User => User.DeviceID == App.Current.Dev
(SELECT Name FROM User WEHRE DeviceID = App.Current.DeviceID)
尝试过这个,似乎不起作用
var Name = await App.MobileService.GetTable<User>()
.Select(User => User.Name)
.Where(User => User.DeviceID == App.Current.DeviceID);
方法的结果仍然是一个查询对象,而不是对象本身。您需要调用toListSync
或toEnumerableSync
中的一个来实际发出请求:
var Name = (await App.MobileService.GetTable<User>()
.Where(User => User.DeviceID == App.Current.DeviceID)
.Select(User => User.Name)
.ToEnumerableAsync()).FirstOrDefault();
var Name=(等待App.MobileService.GetTable())
.Where(User=>User.DeviceID==App.Current.DeviceID)
.Select(User=>User.Name)
.ToEnumerableAsync()).FirstOrDefault();
您能启动LinqQuery吗?我相信这是找到下面的OData查询的最简单方法。由于SQLAzure不适用,我将重新标记此OData。您所说的字符串化LinqQuery是什么意思?我想做的是根据设备id从用户表中选择名称。但目前,lookup async仅适用于整数id,我不知道另一种基于字符串检索数据的方法。在较低级别,Azure存储使用REST命令。我应该换一种说法,您没有使用Linq,但SDK正在将它们转换为REST字符串。要帮助调试您的解决方案,请查找允许您在链的末尾输出字符串(.ToString())或(.ToAzureString())的方法。我尝试了您的方法,但User.DeviceID出现错误,它说字符串不包含DeviceID的定义,并且找不到扩展方法DeviceID。我对语句的顺序有问题,现已修复。Where
子句应位于Select
之前。
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string DeviceID { get; set; }
}
var Name = (await App.MobileService.GetTable<User>()
.Where(User => User.DeviceID == App.Current.DeviceID)
.Select(User => User.Name)
.ToEnumerableAsync()).FirstOrDefault();