次のSQLステートメントをLINQtoSQLに変換する方法を理解しようとしています。
, 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に変換できないか、「ラムダ式をデリゲート型'System.Funcに変換できない」ため、いずれも機能しません。
私がやろうとした方法がうまくいかない理由を理解しています。
では、どのようにそれを行いますか?方法があることはわかっていますが、LINQtoSQLについて理解するのに十分な知識がありません。何かアドバイスをいただければ幸いです。