【问题标题】:What is the SQL LIKE operator equivalent in LINQ having multiple % operators in the input text?在输入文本中有多个 % 运算符的 LINQ 中等效的 SQL LIKE 运算符是什么?
【发布时间】:2018-06-14 08:27:21
【问题描述】:

要将 SQL LIKE 查询转换为在字符串的开头和结尾都有“%”(百分比)运算符的 LINQ,我们使用 Contains() 方法。

例如

SELECT * FROM [User] WHERE Username LIKE '%test%'

等效的 LINQ 是:

var users = (from usr in Context.Users
            where usr.Username.Contains("test")
            select usr).ToList();

以下在输入文本中包含多个“%”(百分比)运算符的查询等效于什么?

SELECT * FROM [User] WHERE Username LIKE '%test%email%'

感谢任何帮助。

注意:查询将在EntityFramework(版本6.1.3)中执行

【问题讨论】:

  • 对我来说听起来像是正则表达式。
  • 你没有提到你的环境,但是例如EF有Like函数:entity => EF.Functions.Like(entity.Name, $"%{searchname}%")
  • 您可以在重复链接的this answer 中找到您的解决方案。
  • 好的,感谢您的帮助。

标签: c# sql entity-framework linq


【解决方案1】:

张贴@Fabio@CodeNotFound给出的cmets作为参考答案。

在 EntityFramework 版本6.2.0中:

var users = (from usr in Context.Users
            where DbFunctions.Like(usr.Username, "%test%email%")
            select usr).ToList();

【讨论】:

    猜你喜欢
    • 2012-05-15
    • 2011-07-19
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    相关资源
    最近更新 更多