与Windows Azure表中的等效语句相同

时间:2014-03-04 07:27:05

标签: c# xaml azure microsoft-metro

我想知道azure表存储中是否有类似的声明。我正在使用此声明来获取特定数据:

myTable.Where(userinfo => userinfo.Username == txtUsername.Text.ToLower());

有没有办法让它像这样:

select * from tblUsers where username like 'D%'

3 个答案:

答案 0 :(得分:1)

myTable.Where(userinfo => userinfo.Username.StartsWith("D");

答案 1 :(得分:1)

虽然不推荐,但您可以进行范围查询。所以你的代码应该是这样的:

myTable.Where(userinfo => (userinfo.Username >= 'D' && userinfo.Username < 'E'));//Not tested code

上述声明将返回用户名以字母D开头的所有用户。但是你需要牢记两件事:

  1. 这将导致全表扫描。如果表中的记录数量很少,这可能不是一个大问题,但如果您的表很大,那么这将是一个问题。
  2. 由于此查询正在进行全表扫描,因此请准备好获取连续令牌,即查询不会返回任何结果,但会为您提供一个继续令牌,您需要使用该令牌向表服务发送下一个请求。您可能会发现此链接对于理解延续令牌非常有用:http://msdn.microsoft.com/en-us/library/windowsazure/dd135718.aspx

答案 2 :(得分:0)

Natively Azure Table仅支持少数运营商:

Equal               eq
GreaterThan         gt
GreaterThanOrEqual  ge
LessThan            lt
LessThanOrEqual     le
NotEqual            ne

http://msdn.microsoft.com/en-us/library/windowsazure/dd894031.aspx