包含LINQ查询中的语句
本文关键字:语句 查询 LINQ 包含 | 更新日期: 2023-09-27 18:06:16
我想这样做:
string test = alarmType;
db.Alarms.Where(alarmType.Contains(m => m.Type)).ToList();
但这不起作用。我如何查询?这是使用纯SQL的唯一方法吗?
乌利希期刊指南我试图找出记录是否是"测试"的子字符串,而不是相反。
你必须反转条件:
var query = db.Alarms
.Where(a => alarmType.Contains(a.Type))
.ToList();
然而,你的代码样本是令人困惑的,如果alarmType
是一个字符串,我不知道你想要实现什么。
string test = alarmType;
更新:如果你正在使用LINQ-To-Sql,你想找到所有的记录,其中Type
是alarmType
的子字符串,你可以使用:
var query = db.Alarms
.Where(a => SqlMethods.Like(alarmType, string.Format("%{0}%", a.Type)))
.ToList();
试试下面的
string test = alarmType;
var result = db.Alarms.Where(m => alarmType.Contains(m.Type)).ToList();
您的LINQ查询格式不正确。你有:
db.Alarms.Where(alarmType.Contains(m => m.Type)).ToList();
所以你传递给Contains
的参数是一个lambda,而不是Contains
接受的,
同样,Contains
返回一个bool
,所以你已经传递了一个bool
给Where
,这也不是它接受的参数类型。
你想要的是传递一个lambda给Where
,像这样:
db.Alarms.Where(m => alarmType.Contains(m.Type)).ToList();
请注意,现在Where
和Contains
都被传递了正确类型的参数。