考虑以下 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")