2011-11-16 2 views
0

EF4.0을 사용하고 있으며 저장 프로 시저에서 모델링 한 복잡한 유형을 반환하기 위해 함수 가져 오기를 정의해야합니다. 나는 그러나 텍스트, 1저장 프로 시저의 결과가 작동하지 않는 곳

result = result.Where(item => item.LANID == filter.LanId); 

을 위해 디버거에서 filter.LandId의 값이 "HO \\ UserX"입니다 제외하고, 내 필터 모든 작업을 저장된 프로 시저의 벌금을 실행하고 내 결과를 다시 제대로 얻을 수 있습니다 비주얼 라이저는 실제 값이 "HO \ UserX"(올바른지, 무엇인지)인지 알려줍니다. 저장 프로 시저가 반환하는 LANID 열은 정확한 값 ("HO \ UserX")을 포함하지만 내 위치 이후에는 결과 수가 0입니다.

이 목록을 필터링하기 위해 EF가 수행하는 작업을 알고있는 사람이 누구이며 왜이 특정 필터가 망가져 있습니까? 나는 어딘가에 뭔가 잘못 빠져 나오고 있다고 가정하지만, 무엇이 어디서 있는지를 알 수 없다.

팁을 주시면 감사하겠습니다.

답변

0

EF는 아무 것도하지 않습니다. result이 저장 프로 시저의 결과이면 모든 엔티티가 응용 프로그램에로드되고 필터링이 Linq-to-objects에 의해 수행됨을 의미합니다. 디버거는 \이 이스케이프 시퀀스의 특수 문자이기 때문에 \\을 표시하므로 \ 문자를 문자열에서 사용하려면 \\으로 이스케이프해야합니다.

+0

안녕하세요 Ladislav, 나는 이해하고 filter.LanId = filter.LanId.Replace (@ "\", @ "\\")를 시도한 다음 그 위치를 실행했지만 그 결과는 여전히 비어 있습니다. – user1037563

+0

이 단일 문자열 또는'\'문자가 포함 된 모든 문자열에만 문제가 있습니까? –

+0

LandId 필드에만이 필드가 있고 그 필드가 문제를 일으키는 유일한 필드입니다. \ 다른 필드를 업데이트하려고 시도하고 필터가 작동하는지 확인합니다. – user1037563