2013-02-22 56 views
0

我有一個簡單的請求,過濾數據,命令它和頁面來自jQuery 嵌入在Kendo網格工具欄中的自動完成。這是打電話的代碼。實體框架5.0 L2S包含,StartsWith,EndsWith由於額外的引號不工作

Service.Get(s=> s.Name.Contains("Alcurt QI, In"), o => o.Name, 1, 15) 

如果我從網上進入生成的SQL是正確的但它嵌入另外 單引號。 SQL使用SQL Profiler捕獲。這裏是 結果的片段:

WHERE [Extent1].[Name] LIKE @p__linq__0 ESCAPE N''~'' 
) AS [Project1] 
) AS [Project1] 
WHERE [Project1].[row_number] > 0 
ORDER BY [Project1].[Name] ASC',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'%''Alcurt QI, In''%' 

名稱列類型爲nvarchar。

你看它使用等,但是,請注意額外的引號

@p__linq__0=N'%''Alcurt QI, In''%' 

如果我刪除多餘的引號的查詢工作正常。我在SQL Manager中測試了它。

然後我寫了一個單元測試嘲笑HttpContext並調用相同的控制器動作 和SQL工作正常。這裏是來自它的SQL而不是缺失的引號。

WHERE [Extent1].[Name] LIKE @p__linq__0 ESCAPE ''~'' 
) AS [Project1] 
) AS [Project1] 
WHERE [Project1].[row_number] > 0 
ORDER BY [Project1].[Name] ASC',N'@p__linq__0 varchar(8000)',@p__linq__0='%Alcurt QI, In%' 

O/S是Windows 7的 的Visual Studio 2012 實體從的NuGet,5.0框架的DbContext 系統是MVC 4 n層 請求者劍道網格自動完成的工具欄。

我已經驗證了的EntityFramework版本等

WHY ????

回答

1

查看結果後,我無法相信我所看到的。於是我退後一步,從abd開始重新看了一眼,旁邊有一個單引號。所以系統按設計運行。