데이터를 필터링하고 jQuery에서 오는 페이지 및 주문 페이지가 검도 그리드의 도구 모음에 포함 된 간단한 요청을 받았습니다. 다음은 호출하는 코드입니다.Entity Framework 5.0 L2S에 여분의 따옴표가 있기 때문에 시작, 끝내기가 작동하지 않습니다.
Service.Get(s=> s.Name.Contains("Alcurt QI, In"), o => o.Name, 1, 15)
내가 웹에서 입력하면 결과 SQL이 올바른지 그러나 그것은 또한에게 작은 따옴표를 포함합니다. SQL은 SQL 프로파일 러를 사용하여 캡처됩니다. 여기 결과의 단편이다
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''%'
주의, LIKE 사용되지만 것을 알 수있다. 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가 Nuget, 5.0에서 윈도우 7 비주얼 스튜디오 2012 엔티티 프레임 워크입니다, dBContext 시스템은 MVC 4 ntier 도구 모음의 자동 완성과 요청자 검도 그리드입니다.
EntityFramework 버전 등을 확인했습니다.
WHY ????