2011-02-10 3 views
2

Я использую эту инструкцию:рамки сущность и где с как

db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale == code); 

Я хочу использовать „как“ оператор вместо == для управления регистронезависимы

Как это сделать?

благодарит

ответ

1

Если вы хотите сделать в любом случае, я предлагаю два пути:

db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale.Equals(code, StringComparison.OrdinalIgnoreCase)); 

Или

db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale.ToUpper() == code.ToUpper()); 

Если вы не хотите этого, вы можете использовать StartsWith содержит, и т.д., с параметром StringComparison.OrdinalIgnoreCase.

+0

Я также хотел бы отметить, что в зависимости от вашей базы данных (sql 2008) в любом случае может не учитываться регистр. –

+0

Да, действительно ... это зависит от базы данных – Francisco

3

Вы можете использовать Contains():

db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale.Contains(code)); 
+0

-1 Содержит() может использоваться для замены SQL. Однако он чувствителен к регистру и не имеет встроенного независимого от регистра эквивалентного значения. Просмотрите раздел примечаний в статье MSDN о Содержит: http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx – Corin

+0

Содержит переведен в 'LIKE' в SQL, и там он _is_ case нечувствителен. 'WHERE Name LIKE '% rob%'' возвращает те же результаты, что и 'WHERE Name LIKE '% ROB%''. –

+0

На самом деле чувствительность 'LIKE' зависит от настройки сортировки в базе данных. Указанная вами ссылка MSDN не имеет ничего общего с SQL, созданным EF. –

0

В LINQ Для Entity у вас есть такие функции, как StartsWith, EndsWith и содержит, что вы можете использовать вместо этого, как

1

Я знаю, что это старая тема, но и расширить на том, что Kristof Claes говорил,

db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale.ToUpper().Contains(code.ToUpper())); 

, если вы используете опцию ToUpper, он будет действовать так, как будто это поиск без учета регистра. Вы можете использовать ToLower, чтобы делать то же самое, если у вас есть такая склонность.

Смежные вопросы