代码之家  ›  专栏  ›  技术社区  ›  Simon Dugré Metin Atalay

LINQ和EF以及字符串.StartWith(字符c)

  •  2
  • Simon Dugré Metin Atalay  · 技术社区  · 16 年前

    我有一个搜索机制的问题,就像我们有时在网站上看到的那样。我有一个很大的清单,上面写着。过滤a的方法包括以下列表:“#,a,B,C,D,E,[…]”。

    当我使用EF执行反查询时,会弹出一个错误。这是我的密码。

    代码:

    var query = from  p in m_context.Persons
                where char.IsDigit(p.Name, 0)
                select a;
    

    错误表示无法将其转换为针对数据库的有效表达式。那么,到底有没有办法呢?

    谢谢你,伙计。

    更新=======================

    1 回复  |  直到 16 年前
        1
  •  3
  •   bniwredyc    16 年前

    我想我找到了解决办法:

    var query = m_context.Persons.Where("substring(it.Name, 1, 1) in MULTISET('0','1','2','3','4','5','6','7','8','9')");
    

    参考资料:

    Entity SQL Quick Reference