Проблема с LINQ для сущностей и String.StartsWith - PullRequest
46 голосов
/ 13 июня 2009

Я пытаюсь создать страницу поиска, используя LINQ to Entities, но следующий код дает мне ошибку во время выполнения о l.t.e. не распознает логическое значение StartsWith (). Код компилируется просто отлично. Как можно обойти это лучше, чем отправлять фильтр StartsWith в сохраненный процесс?

    return from dp in dents.DirectoryPersonEntrySet
           where
               ((dp.LastName.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) ||
                (dp.Department.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase)) ||
                dp.Extension.StartsWith(searchTerm, StringComparison.CurrentCultureIgnoreCase))
           select dp;

1 Ответ

89 голосов
/ 13 июня 2009

Я полагаю, что EF не поддерживает перегрузку StartsWith, которая принимает параметр StringComparison.

Он должен поддерживать StartsWith , EndsWith и Содержит , поэтому, возможно, вы можете попробовать:

dp.LastName.StartsWith(searchTerm)

или

dp.LastName.ToLower().StartsWith(searchTerm)

и затем убедитесь, что searchTerm также в нижнем регистре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...