Как игнорировать регистр с LINQ-to-SQL? - PullRequest
11 голосов
/ 04 февраля 2010

У меня проблемы с получением данных с использованием LINQ-to-SQL. Я использую следующий фрагмент кода для поиска пользователя нашего веб-приложения (имя пользователя - адрес электронной почты):

var referenceUser = 
    db.ReferenceUsers
      .SingleOrDefault(rf => rf.Email == values["emailAddress"]);

Если я наберу test@test.com, я получу ReferenceUser, однако, если я наберу tESt@tESt.com, я не получу. Как я могу заставить LINQ игнорировать регистр при выборе пользователя?

Ответы [ 4 ]

15 голосов
/ 04 февраля 2010

ли:

var referenceUser = 
    db.ReferenceUsers.SingleOrDefault(
        rf => rf.Email.ToUpper() == values["emailAddress"].ToUpper());

работа

ToUpper() должен быть переведен в правильный SQL для запуска в качестве запроса к базе данных, а затем вернуть оба результата.

5 голосов
/ 04 февраля 2010
var referenceUser = db.ReferenceUsers.SingleOrDefault(rf => string.Compare(rf.Email, values["emailAddress"],true)==0);

Где "истина" - игнорировать регистр или нет

0 голосов
/ 08 октября 2015
listTasks.ItemsSource
    = taskList.Where( x => x.TaskDescription.ToLower()
                            .ToString()
                            .StartsWith(txtSearch.Text.Trim()
                            .ToLower()
                            .ToString()));
0 голосов
/ 01 августа 2010

Вот как я это сделал. Могу дать вам подсказку. У меня есть список с профилями, и я хочу найти имена профилей, содержащие «aR», «Ar» или «AR».

List<Profile> profileList = CreateProfile();
string search = "aR".ToLower();

profileList = (from p in profileList where p.Name.ToLower().Contains(search)
        orderby p.Name select p).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...