Подтвердить что ты не робот

Проблема с LINQ для объектов и String.StartsWith

Я пытаюсь создать страницу поиска с помощью LINQ to Entities, но следующий код дает мне ошибку времени выполнения l.t.e. не распознавая "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;
4b9b3361

Ответ 1

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

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

dp.LastName.StartsWith(searchTerm)

или

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

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