LIKE列查询

时间:2015-10-13 07:25:53

标签: entity-framework linq-to-entities

当您知道要查找的模式时,很容易在实体框架中执行ContainsStartsWithEndsWith查询。但是如何做相当于" LIKE [Column]"?

例如,这很简单:

Name LIKE '%Th'

但是你怎么做的?其中前缀是一列。

Name LIKE [Prefix]

我尝试使用SqlMethods并收到以下错误。

  

LINQ to Entities无法识别方法' Boolean Like(System.String,System.String)'方法,并且此方法无法转换为商店表达式。

2 个答案:

答案 0 :(得分:0)

我通过使用LINQ to Entities来恢复我想要的数据集,然后使用LINQ to Objects过滤数据来解决这个问题。

我认为目前没有办法在数据库服务器中解析LINQ to Entities查询...

... LIKE [column-name]

答案 1 :(得分:0)

首先,installation guide用于LINQ-to-SQL,而不是LINQ-to-Entities。

在数据库引擎中使用过滤器的最佳方法是(所以你不必先在内存中提取所有数据)是:

context.Entities.SqlQuery("SELECT * FROM EntityTable WHERE Name LIKE Prefix")