考虑以下SQL语句-
SELECT * FROM Customers WHERE FirstName LIKE '%IS%'
这将搜索名字中包含"is"的客户,对吧?
我喜欢LINQ-中的相同语句
var names = from cust in customers where cust.FirstName ......
我无法具体说明这种情况。有人能帮我解决这个问题吗。
谢谢你分享你的时间和智慧。
大多数LINQ->SQL翻译器都会从c#中提取一些常规方法,并将它们翻译成SQL。Contains是一种非常常见的翻译方法,可与linq2sql和EF 一起使用
var names = from cust in customers
where cust.FirstName.Contains("IS")
select cust;
编辑:(不区分大小写)
var names = from cust in customers
where cust.FirstName.ToLower().Contains("is")
select cust;
对于不区分大小写的contains
,如果可以使用string.IndexOf Method(string,StringComparison),则可以将字符串转换为相同的大小写(小写或大写),或者效果更好
var names = from cust in customers
where cust.FirstName.IndexOf("IS",StringComparison.InvariantCultureIgnoreCase) >= 0
select cust;
尽管这种方法的性能增益可以忽略不计,但它将确保进行适当的大小写不敏感的比较。使用StringComparison
枚举进行不区分大小写的字符串比较总是一种很好的做法。你可以看到:土耳其问题和为什么你应该关心
试试这个:
var names = from cust in customers where cust.FirstName.Contains("IS")