请考虑以下SQL语句 -
SELECT * FROM Customers WHERE FirstName LIKE '%IS%'
这将搜索具有'IS'作为名字一部分的客户,对吗?
我喜欢LINQ中的相同陈述 -
var names = from cust in customers where cust.FirstName ......
我无法指定该条件。 任何人都可以帮我解决这个问题。
感谢您分享您的时间和智慧。
答案 0 :(得分:7)
大多数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;
答案 1 :(得分:2)
对于不区分大小写contains
,如果您可以使用String.IndexOf Method (String, StringComparison)
var names = from cust in customers
where cust.FirstName.IndexOf("IS",StringComparison.InvariantCultureIgnoreCase) >= 0
select cust;
虽然这种方法的性能提升可以忽略不计,但它确保了一个适当的不区分大小写的比较。将StringComparison
枚举用于不区分大小写的字符串比较始终是一种很好的做法。您可能会看到:The Turkish İ Problem and Why You Should Care
答案 2 :(得分:1)
试试这个:
var names = from cust in customers where cust.FirstName.Contains("IS")