1
对于使用SQL Server Compact作为后端的EF CodeFirst查询,我遇到了以下问题。使用SQL Server Compact 4.0在实体框架中进行LIKE查询
的LINQ表达式为:
var results = (from c in x.Countries where c.Name.StartsWith(term) select c);
据我学到了什么,输出应该在WHERE子句中使用LIKE运算符,而是在SQL正在运行的是:
SELECT [Extent1].[ID] AS [ID], [Extent1].[Name] AS [Name]
FROM [Countries] AS [Extent1]
WHERE (CHARINDEX(@p__linq__0, [Extent1].[Name])) = 1
这是怎么回事?
编辑:我使用也试过包含(项),生成的SQL是不同的,但它不使用LIKE要么
我正在用西班牙语的国家名称工作。例如,如果我正在寻找墨西哥(注意'e'上方的标记),即使用户输入墨西哥(没有标记),我也想查找它。与我一样,我会做一个类似这样的查询:WHERE [Name] LIKE N'M [eé] x%'。如果对上面的代码,我提供StartsWith(“M [eé] x”)代码返回一个空列表。 – 2011-04-25 22:41:03
@Kiranu:查看编辑 – 2011-04-25 23:44:20
我正在制作的应用程序是一件相当简单的事情,所以我让EF创建数据库。有没有办法让数据库EF创建Accent-Insensitive? – 2011-04-26 01:31:25