2016-09-28 77 views
0

我有一個查詢,像這樣有沒有辦法通過在LINQ導航屬性爲sql

var ReportData = db.PY_History_TransactionTAB.AsEnumerable() 
.Where(x => x.SystemCode == SysCode) 
.GroupBy(x => new { x.EmployeeCode, x.EmployeeMaster.Emp_FullName}); 

對於x.EmployeeCode選擇的GroupBy成員,這是很容易做到的元素選擇組:

ReportData.Select(x => new PY_History_TransactionTAB 
{ 
    EmployeeCode = x.Key.EmployeeCode, 
} 

但是,如果我想選擇下一個GroupBy成員,如x.EmployeeMaster.Emp_FullName,該怎麼辦?這樣我就可以在我強烈的類型化視圖中得到它。

回答

0

我找到了解決方案。所以,如果你有一個導航屬性,只需將它放在選擇()以這樣的方式

ReportData.Select(x => new PY_History_TransactionTAB 
{ 
    EmployeeCode = x.Key.EmployeeCode, 
    EmployeeMaster = x.First().EmployeeMaster 
} 

現在你可以有EmployeeMaster類的所有屬性爲好。

0
ReportData.Select(x => new 
{ 
    EmployeeCode = x.Key.EmployeeCode, 
    EmployeeName = x.Key.Emp_FullName, 
} 
+0

雖然這段代碼可能有助於解決問題,但它並沒有解釋_why_和/或_how_它是如何回答問題的。提供這種附加背景將顯着提高其長期教育價值。請[編輯]您的答案以添加解釋,包括適用的限制和假設。 –

相關問題