C# Windows Azure表中的Like语句等效项

C# Windows Azure表中的Like语句等效项,c#,xaml,azure,microsoft-metro,C#,Xaml,Azure,Microsoft Metro,我想知道azure表存储中是否有类似的语句。我使用此语句获取特定数据: myTable.Where(userinfo=>userinfo.Username==txtUsername.Text.ToLower()) 有没有办法做到这一点: select * from tblUsers where username like 'D%' 本机Azure表仅支持少数运算符: Equal eq GreaterThan gt GreaterThanOrEqual

我想知道azure表存储中是否有类似的语句。我使用此语句获取特定数据:

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

有没有办法做到这一点:

select * from tblUsers where username like 'D%'

本机Azure表仅支持少数运算符:

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

虽然不推荐,但您可以进行范围查询。因此,您的代码类似于:

myTable.Where(userinfo => (userinfo.Username >= 'D' && userinfo.Username < 'E'));//Not tested code
myTable.Where(userinfo=>(userinfo.Username>='D'&&userinfo.Username<'E')//未测试代码
上述语句将返回用户名以字母
D
开头的所有用户。但是,您需要记住两件事:

  • 这将导致全表扫描。如果表中的记录数很小,这可能不是一个大问题,但如果表很大,这将是一个问题
  • 由于此查询正在进行全表扫描,请准备获取延续令牌,即该查询不会返回任何结果,但会提供一个延续令牌,您需要使用该令牌向表服务发送下一个请求。您可能会发现此链接有助于理解延续标记:

  • 我对这句话有疑问,如果文本是“Deb”怎么办?它还会搜索由“Deb”组成的用户名吗?它会搜索以“Deb”开头的用户名。如果您想要“%Deb%”,请将其更改为
    .Contains
    您能给我一个我将如何使用它的示例吗?offtopic:您认为您能帮我解决这个问题吗?提前谢谢你!
    myTable.Where(userinfo => (userinfo.Username >= 'D' && userinfo.Username < 'E'));//Not tested code