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