Как игнорировать регистр с LINQ к SQL?

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

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

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

11
задан jason 4 February 2010 в 16:28
поделиться

3 ответа

Работает ли:

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

?

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

15
ответ дан 3 December 2019 в 06:21
поделиться
var referenceUser = db.ReferenceUsers.SingleOrDefault(rf => string.Compare(rf.Email, values["emailAddress"],true)==0);

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

5
ответ дан 3 December 2019 в 06:21
поделиться

Вот как я это сделал. Могу дать вам подсказку. У меня есть список с профилями, и я хочу найти имена профилей, содержащие «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();
0
ответ дан 3 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: