繁体   English   中英

在LINQ中将where子句与组联接一起使用

[英]Using where clause with Group Joins in LINQ

我是LINQ的新手,但是我不知道这段代码有什么问题。 我想要的只是将查询的结果存储在数组列表中,这给了我一个例外:索引超出范围。 必须为非负数并且小于集合的大小。

             var JoinLCandSymp =
             (from symp in SymptomsTable.AsEnumerable()
              join leftC in LeftChestTable.AsEnumerable() on symp.Field<int>("Symptom_Number") equals leftC.Field<int>("Symptom_Number") into Sgroup

              from SF in Sgroup
              where SF.Field<int>("Rank") == 1 && SF.Field<string>("Category") == "Pain"

              select symp.Field<string>("Symptom_Name")

               );
         foreach (string val in JoinLCandSymp)
         {

             GlobalVariables.sympLCWR1Pain.Add(val);

         } 

任何帮助都会真的有帮助。 :)

好的,这是另一个相同的过程...这可能有什么问题? 给出相同的例外。

         var JoinLCandSymp =
         (from symp in SymptomsTable.AsEnumerable()
          join leftC in LeftChestTable.AsEnumerable() on symp.Field<int>("Symptom_Number") equals leftC.Field<int>("Symptom_Number")
          where leftC.Field<int>("Rank") == 1 && leftC.Field<string>("Category") == "Pain"
         // group leftC by symp into SympGroup
          select symp.Field<string>("Symptom_Name")

           );
     foreach (string val in JoinLCandSymp)
     {

         GlobalVariables.sympLCWR1Pain.Add(val);

     }

我认为最好使用View或USP(用户存储过程),当您在.Net中使用USP时,您将返回相同的数据带。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM