C# 从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

如何查询我的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.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();