【问题标题】:Is there a simple way to use LIKE in EF yet?有没有一种在 EF 中使用 LIKE 的简单方法?
【发布时间】:2011-03-22 04:18:06
【问题描述】:

Like 可以通过通过 ESQL 传递字符串来获得......但到目前为止还不能作为实际的运算符或方法。我发现了许多建议解决方法的文章,其中最多的 interesting 我得到了一个例外:

NotSupportedException:指定的 方法'Boolean Like(System.String, System.String)' 在类型上 'EF4.Extensions' 无法翻译 进入 LINQ to Entity 存储 表达。

这里有什么吗? EF 4.1 已经发布...有什么新闻或干净的选项吗?

【问题讨论】:

    标签: entity-framework operators


    【解决方案1】:

    在 EF 4.x 中,string.StartsWith、string.EndsWith 和 string.Contains 被转换为 SQL LIKE。 (虽然都不支持多个通配符...)

    【讨论】:

    • 据我了解,它们根本不支持通配符,因此您是手动选择开始于、结束于或包含通过代码中的分支?
    【解决方案2】:

    首先,@KristoferA 关于 SqlClient 是绝对正确的。
    但此功能取决于 EF 提供程序。例如,Oracle、MySQL、PostgreSQL 和 SQLite 的 Devart 提供程序在 EF v1 和 EF v4 的 StartsWith、EndsWith 和 Contains String 方法中包含 Like 调用。其他提供程序可能也不包含 EF v4 中的 Like 支持。

    【讨论】:

      猜你喜欢
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-19
      • 2011-04-16
      • 1970-01-01
      • 2011-07-19
      • 1970-01-01
      相关资源
      最近更新 更多