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 ????