1

我有学生的存储库,我想让一些成绩在 0 到 2 之间的学生。

这是我的代码:

_unitOfWork.Repository<Student>().Get(o => o.OrganizationId == organizationId
                && o.Grades.Where( o1 => o1.LastVersion
                        && o1.Type == 5
                        && o1.Value == 1).Count() > 0 
                && o.Grades.Where( o1 => o1.LastVersion
                        && o1.Type == 5
                        && o1.Value == 1).Count() <= 2 );

此代码有效,但我的问题是如何用更少的代码更改此查询。

有什么方法可以用某个变量替换 Count 而不是在查询中使用它两次?

4

1 回答 1

1

像这样的东西?

 var values = Enumerable.Range(1, 2);

 _unitOfWork.Repository<Student>().Get(o => o.OrganizationId == organizationId
            && values.Contains(
                o.Grades.Where( o1 => o1.LastVersion
                    && o1.Type == 5
                    && o1.Value == 1).Count()
               ));
于 2013-08-15T07:36:17.120 回答