当您知道要查找的模式时,很容易在实体框架中执行Contains
,StartsWith
或EndsWith
查询。但是如何做相当于" LIKE [Column]"?
例如,这很简单:
Name LIKE '%Th'
但是你怎么做的?其中前缀是一列。
Name LIKE [Prefix]
我尝试使用SqlMethods
并收到以下错误。
LINQ to Entities无法识别方法' Boolean Like(System.String,System.String)'方法,并且此方法无法转换为商店表达式。
答案 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")