[英]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.