2017-05-03 19 views
0

我在lambda中有以下查詢。由lambda表達式實體框架的多個組的最大2列

var list = dbConnection.Form_Datas.Join(dbConnection.Forms, fd => fd.form_ID, f => f.form_ID, 
      (fd, f) => new { form_data = fd, form = f }) 
      .Where(a => a.form_data.External_ID == personID) 
      .Select(s => new FormDataDTO 
      { 
       FormID = s.form.form_ID, 
       FormName = s.form.name, 
       FormDataID = s.form_data.form_Data_ID, 
       LastEdit = s.form_data.last_Edit, 
       UserName = s.form_data.username 
      }).OrderByDescending(o=>o.LastEdit).ToList(); 

我需要得到LastEdit的最大值和FormDataID列,因爲formID和窗體名稱是重複的一個FormDataID。此外,UserName應該從最大行值中顯示。

在此先感謝。

回答

2

我相信你在找什麼是GroupBy條款。

var list = dbConnection.Form_Datas 
    .Join(dbConnection.Forms, fd => fd.form_ID, f => f.form_ID, 
     (fd, f) => new { form_data = fd, form = f }) 
    .Where(a => a.form_data.External_ID == personID) 
    .GroupBy(s => new 
    { 
     FormID = s.form.form_ID, 
     FormName = s.form.name, 
     UserName = s.form_data.username 
    }) 
    .Select(s => new FormDataDTO 
    { 
     FormID = s.Key.form.form_ID, 
     FormName = s.Key.form.name, 
     FormDataID = s.Max(x => x.form_data.form_Data_ID), 
     LastEdit = s.Max(x => x.form_data.last_Edit), 
     UserName = s.Key.form_data.username 
    }).OrderByDescending(o=>o.LastEdit).ToList(); 
+0

這很好用...非常感謝,正是我需要的。 –

+0

@RohitSethi歡迎您,祝您未來的編碼順利 –

相關問題