2014-09-11 62 views
0

iam new in linq,我想將linq結果轉換爲字典,但我得到一個錯誤。linq to dictionary不能隱含轉換類型

這是我的C#代碼:

var q = from abs in db.TT_ABSENCEs 
     join emp in db.TT_EMPLOYEEs on abs.Employee_NIP equals emp.Employee_NIP 
     where 
     Convert.ToDateTime(abs.ReceivedTime).Day == DateTime.Now.Day 
     && Convert.ToDateTime(abs.ReceivedTime).Month == DateTime.Now.Month 
       && Convert.ToDateTime(abs.ReceivedTime).Year == DateTime.Now.Year 
     select new { abs.ReceivedTime, abs.Employee_NIP, abs.AbsenceTime, abs.GeoLoc, abs.statusAbsence, emp.Employee_Name }; 


Dictionary<String, TT_ABSENCE> _dict = 
    q.ToDictionary(abs => abs.Employee_NIP, abs => abs.statusAbsence); 

這是我的錯誤:

無法隱式轉換類型 'System.Collections.Generic.Dictionary<string,AnonymousType#1>' 到 'System.Collections.Generic.Dictionary<string,DataAccess.TT_ABSENCE>'

如何轉換linq結果爲字典?

+2

替換此'選擇新{abs.ReceivedTime,abs.Employee_NIP,abs.AbsenceTime,abs.GeoLoc,abs.statusAbsence,emp.Employee_Name}'本'選擇abs' – Aron 2014-09-11 03:51:16

+0

仍然錯誤只分配,呼叫,遞增,遞減,等待和新的對象表達式可以用作語句 – yozawiratama 2014-09-11 03:54:27

+0

哦好吧,其作品:D – yozawiratama 2014-09-11 03:56:48

回答

2
var q = from abs in db.TT_ABSENCEs 
     join emp in db.TT_EMPLOYEEs on abs.Employee_NIP equals emp.Employee_NIP 
     where 
     Convert.ToDateTime(abs.ReceivedTime).Day == DateTime.Now.Day 
     && Convert.ToDateTime(abs.ReceivedTime).Month == DateTime.Now.Month 
       && Convert.ToDateTime(abs.ReceivedTime).Year == DateTime.Now.Year 
     select abs; 


Dictionary<String, TT_ABSENCE> _dict = q.ToDictionary(abs => abs.Employee_NIP); 
+0

這是作品,謝謝:D – yozawiratama 2014-09-11 04:11:53

相關問題