Проблема с LINQ для сущностей и String.StartsWith

.net entity-framework linq linq-to-entities

Вопрос

Я пытаюсь создать страницу поиска, используя LINQ to Entities, но следующий код дает мне ошибку времени выполнения о том, что lte не распознает Boolean 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;

Принятый ответ

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

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

dp.LastName.StartsWith(searchTerm)

или же:

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

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



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow