为啥我的 Linqued 查询没有给我正确的结果?
Posted
技术标签:
【中文标题】为啥我的 Linqued 查询没有给我正确的结果?【英文标题】:Why my Linqued query is not giving me proper result?为什么我的 Linqued 查询没有给我正确的结果? 【发布时间】:2016-05-09 09:06:08 【问题描述】:我有这个 sql 查询,它给了我正确的结果,即使用 order by 子句按 A 到 Z 排序的所有员工姓名
select Distinct(EmpNTLogin),Employee from Attendance
where CreateDate>='2016-01-01'
order by EmpNTLogin
当我在 Linq 中转换相同的查询时,我得到了正确的结果,但 order by 子句不起作用。 这是我的 Linqued 查询
var query = (from attendance in db.Attendances
orderby attendance.EmpNTLogin
where attendance.CreateDate.Value.Year >= 2016
select new attendance.Employee, attendance.EmpNTLogin ).Distinct();
【问题讨论】:
【参考方案1】:在 linq 查询中,在 orderby
之后应用了 distinct,因此该顺序被丢弃。
在distinct调用后应用orderby
var query = (from attendance in db.Attendances
where attendance.CreateDate.Value.Year >= 2016
select new
attendance.Employee,
attendance.EmpNTLogin
).Distinct().OrderBy(att => att.EmpNTLogin);
【讨论】:
【参考方案2】:您需要先应用 'where' 子句,然后应用 'orderby' 子句。 像这样的:
var query = (from attendance in db.Attendances
where attendance.CreateDate.Value.Year >= 2016
orderby attendance.EmpNTLogin
select new attendance.Employee, attendance.EmpNTLogin ).Distinct();
【讨论】:
仍然没有得到:(以上是关于为啥我的 Linqued 查询没有给我正确的结果?的主要内容,如果未能解决你的问题,请参考以下文章
为啥对 List<T> 的迭代没有从 SQL 视图中给我正确的值? [复制]
核心数据 - 为啥我的 NSPredicate 没有产生正确的 SQL 查询?
为啥 Weka RandomForest 给我的结果与 Scikit RandomForestClassifier 不同?