内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
有什么方法可以比较C#LINQ表达式中类似于SQL的LIKE
操作吗?
假设我有一个字符串列表。在这个列表中,我想搜索一个字符串。在SQL中,我可以写:
SELECT * FROM DischargePort WHERE PortName LIKE '%BALTIMORE%'
查询需要一个Linq语法,而不是上面的内容。
using System.Text.RegularExpressions; … var regex = new Regex(sDischargePort, RegexOptions.IgnoreCase); var sPortCode = Database.DischargePorts .Where(p => regex.IsMatch(p.PortName)) .Single().PortCode;
我的上述LINQ语法不起作用。我出什么问题了?
string filter = "BALTIMORE"; (blah) .Where(row => row.PortName.Contains(filter)) (blah)
你可以用System.Data.Linq.SqlClient.SqlMethods.Like(...)
,把linq到sql映射到LIKE
在SQLServer中。