Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 包含LINQ查询中的语句_C#_Linq_Asp.net Mvc 4 - Fatal编程技术网

C# 包含LINQ查询中的语句

C# 包含LINQ查询中的语句,c#,linq,asp.net-mvc-4,C#,Linq,Asp.net Mvc 4,我想这样做: string test = alarmType; db.Alarms.Where(alarmType.Contains(m => m.Type)).ToList(); 但这不起作用。我怎样才能提出这样的质询呢?这是使用纯SQL的唯一方法吗 UPD 我试图找出记录是否是“测试”的子字符串,而不是相反。您必须反转条件: var query = db.Alarms .Where(a => alarmType.Contains(a.Type)) .ToList

我想这样做:

string test = alarmType;
db.Alarms.Where(alarmType.Contains(m => m.Type)).ToList();
但这不起作用。我怎样才能提出这样的质询呢?这是使用纯SQL的唯一方法吗

UPD

我试图找出记录是否是“测试”的子字符串,而不是相反。

您必须反转条件:

var query = db.Alarms
    .Where(a => alarmType.Contains(a.Type))
    .ToList();
但是,如果
alarmType
是一个字符串,我不知道您想要实现什么,那么您的代码示例很混乱

string test = alarmType;
更新:如果您正在使用LINQ To Sql,并且希望查找
类型
报警类型
子字符串的所有记录,则可以使用:

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
传递给
,其中
,这也不是它所采用的参数类型

您需要将lambda传递给
其中
,如下所示:

db.Alarms.Where(m => alarmType.Contains(m.Type)).ToList();

请注意,
Where
Contains
现在是如何传递正确类型的参数的。

我正在尝试查找记录是否是“test”的子字符串,而不是相反。请编辑您的问题,并说明这一点。带有注释“不工作”的代码看起来毫无意义,因此被否决。另外,
asp.net mvc
标记在这里是多余的。@Fyodor谢谢,请稍候。@silentfobos:fyi,我已经更新了我的答案。@TimSchmelter谢谢!我试试这个。