Linq to sql LINQtoSQL:对包含多个项的IN子句求和

Linq to sql LINQtoSQL:对包含多个项的IN子句求和,linq-to-sql,Linq To Sql,我试图找出如何将以下SQL语句转换为LINQ to SQL: , SUM(CASE WHEN p.prioid IN ('1 - Routine', '6 - Planned Outage', '7-Routine Weekly PM', '8-Routine Non-Weekly PM') THEN 1 ELSE 0 END) as Planning 以下是我迄今为止所尝试的: Planning = groupItem.Sum(groupItem.Key.Prioid=="1 - R

我试图找出如何将以下SQL语句转换为LINQ to SQL:

, SUM(CASE WHEN p.prioid IN ('1 - Routine', '6 - Planned Outage', '7-Routine Weekly PM', '8-Routine Non-Weekly PM') THEN 1 ELSE     0 END) as Planning
以下是我迄今为止所尝试的:

Planning = groupItem.Sum(groupItem.Key.Prioid=="1 - Routine" || groupItem.Key.Prioid=="6 - Planned Outage"||
        groupItem.Key.Prioid=="7-Routine Weekly PM" || "8-Routine Non-Weekly PM") ? 1 : 0


Planning = groupItem.Sum(x=> SqlMethods.Like(x.Prioid, "1 - Routine") || SqlMethods.Like(x.Prioid, "6 - Planned Outage")
        || SqlMethods.Like(x.Prioid, "7-Routine Weekly PM") || SqlMethods.Like(x.Prioid, "8-Routine Non-Weekly PM")) ? 1 : 0  
还有一些其他的东西,但都不起作用,因为不能将bool转换为int或“不能将lambda表达式转换为委托类型'System.Func”

我理解为什么我尝试的方式不起作用


那你怎么做呢?我知道有一种方法,我只是对LINQtoSQL了解得不够,无法找到答案。任何建议都将不胜感激。

我觉得奇怪的是,上面的方法不起作用,因为我认为我以前做过这件事。在看了我过去的作品并与之进行比较后,我发现我犯了一个非常愚蠢的错误,把结尾的括号放错了地方。应该是这样的:

Planning = groupItem.Sum(x=> SqlMethods.Like(x.Prioid, "1 - Routine") || SqlMethods.Like(x.Prioid, "6 - Planned Outage")
        || SqlMethods.Like(x.Prioid, "7-Routine Weekly PM") || SqlMethods.Like(x.Prioid, "8-Routine Non-Weekly PM" ) ? 1 : 0)