2016-05-09 75 views
2

我有這樣的SQL查詢by子句爲什麼我的Linqued查詢沒有給我正確的結果?

select Distinct(EmpNTLogin),Employee from Attendance 
where CreateDate>='2016-01-01' 
order by EmpNTLogin 

使用順序,給了我正確的結果,即由A排序到Z的員工的所有名字,當我轉換Linq中相同的查詢,我得到正確的結果,但按子句排序不起作用。 這裏是我的Linqued查詢

var query = (from attendance in db.Attendances 
        orderby attendance.EmpNTLogin 
        where attendance.CreateDate.Value.Year >= 2016 
        select new { attendance.Employee, attendance.EmpNTLogin }).Distinct(); 

回答

5

在LINQ查詢,所述不同是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); 
0

您需要首先將「其中」條款,然後運用「排序依據」子句。 像這樣:

var query = (from attendance in db.Attendances 
       where attendance.CreateDate.Value.Year >= 2016 
       orderby attendance.EmpNTLogin 
       select new { attendance.Employee, attendance.EmpNTLogin }).Distinct(); 
+0

仍然沒有得到之後:( – akash

相關問題