Где на результат сохраненного процесса не работает - PullRequest
0 голосов
/ 16 ноября 2011

Я использую EF4.0 и мне определен импорт функции, чтобы вернуть мне сложный тип, который смоделирован на основе моей хранимой процедуры.Я могу выполнить сохраненный процесс нормально и вернуть мои результаты правильно и все мои фильтры работают, за исключением 1.

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

значение filter.LandId в отладчике - "HO \\ UserX",однако Text Visualizer говорит мне, что фактическим значением является «HO \ UserX» (что является правильным и каким оно должно быть).Столбец LANID, возвращаемый хранимым процедурой, также содержит это точное значение ("HO \ UserX"), однако после my where счетчик результатов равен 0.

Кто-нибудь знает, что EF делает для фильтрации этогосписок и почему этот конкретный фильтр облажался?Я предполагаю, что где-то что-то неправильно сбежало, но я не могу понять, что или где.

Любые советы будут оценены.

1 Ответ

0 голосов
/ 16 ноября 2011

EF ничего не делает. Если result является результатом хранимой процедуры, это означает, что все сущности были загружены в ваше приложение, а фильтрация выполняется Linq-to-objects. Отладчик показывает вам \\, потому что \ - это специальный символ для escape-последовательностей, поэтому, если вы хотите использовать символ \ в строке, он должен быть экранирован \\.

...