Как игнорировать случай с LINQ-to-SQL?
У меня возникают проблемы с получением данных с использованием LINQ-to-SQL. Я использую следующий фрагмент кода для поиска пользователя для нашего веб-приложения (имя пользователя - адрес электронной почты):
var referenceUser =
db.ReferenceUsers
.SingleOrDefault(rf => rf.Email == values["emailAddress"]);
Если я набираю [email protected]
, я получаю a ReferenceUser
, однако, если я набираю [email protected]
, я этого не делаю. Как я могу заставить LINQ игнорировать случай при выборе пользователя?
Ответы
Ответ 1
ли:
var referenceUser =
db.ReferenceUsers.SingleOrDefault(
rf => rf.Email.ToUpper() == values["emailAddress"].ToUpper());
работа?
ToUpper()
следует перевести в правильный SQL для запуска в качестве запроса к базе данных, а затем вернуть оба результата.
Ответ 2
var referenceUser = db.ReferenceUsers.SingleOrDefault(rf => string.Compare(rf.Email, values["emailAddress"],true)==0);
Где "истина" - это игнорировать случай или нет
Ответ 3
Вот как я это сделал. Можете дать вам подсказку. У меня есть список с профилями, и я хочу искать профили, содержащие "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();
Ответ 4
listTasks.ItemsSource
= taskList.Where( x => x.TaskDescription.ToLower()
.ToString()
.StartsWith(txtSearch.Text.Trim()
.ToLower()
.ToString()));