Sql server 为什么我的Linqued查询没有给出正确的结果?
我有一个sql查询,它给出了正确的结果,即所有员工的姓名都使用ORDERBY子句按A到Z排序Sql server 为什么我的Linqued查询没有给出正确的结果?,sql-server,linq,linq-to-sql,sql-to-linq-conversion,Sql Server,Linq,Linq To Sql,Sql To Linq Conversion,我有一个sql查询,它给出了正确的结果,即所有员工的姓名都使用ORDERBY子句按A到Z排序 select Distinct(EmpNTLogin),Employee from Attendance where CreateDate>='2016-01-01' order by EmpNTLogin 当我在Linq中转换相同的查询时,我得到了正确的结果,但ORDERBY子句不起作用。 这是我的疑问 var query = (from attendance in db.Atte
select Distinct(EmpNTLogin),Employee from Attendance
where CreateDate>='2016-01-01'
order by EmpNTLogin
当我在Linq中转换相同的查询时,我得到了正确的结果,但ORDERBY子句不起作用。
这是我的疑问
var query = (from attendance in db.Attendances
orderby attendance.EmpNTLogin
where attendance.CreateDate.Value.Year >= 2016
select new { attendance.Employee, attendance.EmpNTLogin }).Distinct();
您需要首先应用“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();
在linq查询中,distinct应用于
orderby
之后,因此该顺序被丢弃
将调用后的orderby应用于distinct
var query = (from attendance in db.Attendances
where attendance.CreateDate.Value.Year >= 2016
select new
{
attendance.Employee,
attendance.EmpNTLogin
}).Distinct().OrderBy(att => att.EmpNTLogin);
仍然没有得到:(