有人可以解释一下这个 LINQ 查询的作用吗?
Can someone please explain what this LINQ query does?
我无法理解此 LINQ 查询。这就是我认为正在发生的事情。
1. from stat in XpoSession.Query<STUDENT>()
2. where stat.ID_PERSON.DT_BIRTH >= DateTime.Now.AddYears(-20)
3. && stat.Status.Where(val => val.CD_REASON == Constants.REASON_PLACED).Count() == 0
4. select stat.CD_STATUS.Trim()).ToList().GroupBy(val => val);
#1。数据源是 STUDENT
table 来自数据库。
#2。获取所有小于或等于 20 岁的学生。
#3。这是我不明白的部分。有一个 STUDENT_STATUS
table 有一个 CD_REASON
列所以我假设 stat.Status
真的是 STUDENT_STATUS.CD_REASON
并且它被传递到 lambda 函数,如果它等于 REASON_PLACED
它对 Count 做了一些事情但不确定是什么。
#4。按 CD_STATUS
值分组。
from stat in XpoSession.Query<STUDENT>()
where stat.ID_PERSON.DT_BIRTH >= DateTime.Now.AddYears(-20)
&& stat.Status.Where(val => val.CD_REASON == Constants.REASON_PLACED).Count() == 0
select stat.CD_STATUS.Trim()).ToList().GroupBy(val => val);
看起来它正在为 20 岁以上的学生获取任何 CD_STATUS
值,他们的状态不是任何 Constants.REASON_PLACED
值,并将他们按 CD_STATUS
值。
如果没有更多的上下文或额外的代码,实际上不可能在此处提供更好的答案。
我无法理解此 LINQ 查询。这就是我认为正在发生的事情。
1. from stat in XpoSession.Query<STUDENT>()
2. where stat.ID_PERSON.DT_BIRTH >= DateTime.Now.AddYears(-20)
3. && stat.Status.Where(val => val.CD_REASON == Constants.REASON_PLACED).Count() == 0
4. select stat.CD_STATUS.Trim()).ToList().GroupBy(val => val);
#1。数据源是 STUDENT
table 来自数据库。
#2。获取所有小于或等于 20 岁的学生。
#3。这是我不明白的部分。有一个 STUDENT_STATUS
table 有一个 CD_REASON
列所以我假设 stat.Status
真的是 STUDENT_STATUS.CD_REASON
并且它被传递到 lambda 函数,如果它等于 REASON_PLACED
它对 Count 做了一些事情但不确定是什么。
#4。按 CD_STATUS
值分组。
from stat in XpoSession.Query<STUDENT>()
where stat.ID_PERSON.DT_BIRTH >= DateTime.Now.AddYears(-20)
&& stat.Status.Where(val => val.CD_REASON == Constants.REASON_PLACED).Count() == 0
select stat.CD_STATUS.Trim()).ToList().GroupBy(val => val);
看起来它正在为 20 岁以上的学生获取任何 CD_STATUS
值,他们的状态不是任何 Constants.REASON_PLACED
值,并将他们按 CD_STATUS
值。
如果没有更多的上下文或额外的代码,实际上不可能在此处提供更好的答案。