簡體   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