我使用這個指令:實體框架,並在那裏與像
db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale == code);
我想用‘像’操盤==用於管理不區分大小寫
怎麼做呢?
感謝
我使用這個指令:實體框架,並在那裏與像
db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale == code);
我想用‘像’操盤==用於管理不區分大小寫
怎麼做呢?
感謝
反正平等比較,我建議有兩種方法:
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。
您可以使用Contains()
:
db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale.Contains(code));
-1 Contains()可以用來替代SQL。但是,它是區分大小寫的,沒有內置的不區分大小寫的等價物。查看關於Contains的MSDN文章的備註部分:http://msdn.microsoft.com/en-us/library/dy85x1sa.aspx – Corin
Contains在SQL中被轉換爲'LIKE',並且它對大小寫不敏感。 'WHERE名稱LIKE'%rob%''返回與'WHERE名稱LIKE'%ROB%''相同的結果。 –
實際上'LIKE'的大小寫敏感性取決於數據庫中的排序規則設置。您提到的MSDN鏈接與EF生成的SQL無關。 –
在LINQ to實體你有一個像StartsWith,的endsWith功能,幷包含,如果你想要做的,你可以使用,而不是像
我知道這是一個老話題,但什麼Kristof Claes在說擴大,
db_user = db.CBR_User.FirstOrDefault(p => p.Codice_Fiscale.ToUpper().Contains(code.ToUpper()));
,如果你使用ToUpper選項,它會表現得好像它是一個不區分大小寫的搜索。你可以使用ToLower來做同樣的事情,以防萬一你有那種嗜好。
我也注意到,取決於你的數據庫(SQL 2008)可能不區分大小寫。 –
是的,的確...它取決於數據庫 – Francisco