我正在用C#构建一个查询.对于整数和字符串字段,大小写非常简单.对于日期字段,我使用以下查询:
list.Where("myDateColumn >= DateTime(2017,1,20)");
我如何在LINQ中执行以下SQL LIKE查询?
select * from table where myTextColumn LIKE '%abc%';
sujith kariv.. 22
Linq中有很多可能性:
对于LIKE'%abc%';
list.Where(x => x.myTextColumn.Contains('abc'));
对于LIKE'abc%';
list.Where(x => x.myTextColumn.StartWith('abc'));
对于LIKE'%abc';
list.Where(x => x.myTextColumn.EndsWith('abc'));
更新:如果您需要添加日期比较,则意味着您可以执行以下操作:
DateTime date2Compare = new DateTime(2017, 1, 20); list.Where(x => myDateColumn >= date2Compare && x.myTextColumn.Contains('abc'));
monstertjie_.. 5
在LIKE子句中放置通配符'%'会产生影响,C#有支持这种方法的方法.以下是通配符的放置方式.
喜欢'%abc'
含义:找到以'abc'结尾的任何单词.
C#等价物:EndsWith
喜欢'abc%'
含义:查找以'abc'开头的任何单词,您不关心之后的文本.
C#等价物:StartWith
喜欢'%abc%'
含义:查找包含'abc'的任何单词,并且您不关心单词出现在哪里.
C#等价物:Contains
Linq中有很多可能性:
对于LIKE'%abc%';
list.Where(x => x.myTextColumn.Contains('abc'));
对于LIKE'abc%';
list.Where(x => x.myTextColumn.StartWith('abc'));
对于LIKE'%abc';
list.Where(x => x.myTextColumn.EndsWith('abc'));
更新:如果您需要添加日期比较,则意味着您可以执行以下操作:
DateTime date2Compare = new DateTime(2017, 1, 20); list.Where(x => myDateColumn >= date2Compare && x.myTextColumn.Contains('abc'));
在LIKE子句中放置通配符'%'会产生影响,C#有支持这种方法的方法.以下是通配符的放置方式.
喜欢'%abc'
含义:找到以'abc'结尾的任何单词.
C#等价物:EndsWith
喜欢'abc%'
含义:查找以'abc'开头的任何单词,您不关心之后的文本.
C#等价物:StartWith
喜欢'%abc%'
含义:查找包含'abc'的任何单词,并且您不关心单词出现在哪里.
C#等价物:Contains