public ViewResult Index() { //等同於select a.*,b.DEPT_NAME8 from m_Saler a //inner join (select BMDM8,DEPT_NAME8 from v_sys_BMDM group by BMDM8,DEPT_NAME8) b //on a.BMDM8=b.BMDM8 //可是m_Saler沒有存部門名稱的字段,致使沒法直接返回m_Saler的實例,View只能返回m_Saler,因此在m_Saler添加DEPT_NAME8屬性存部門名稱 var o = db.m_Saler.Join(db.v_sys_BMDM.GroupBy(s => new { s.BMDM8, s.DEPT_NAME8 }), a => a.BMDM8, b => b.Key.BMDM8, (a, b) => new { m_Saler = a, b.Key.DEPT_NAME8, dept_name2 = b.Max(x => x.DEPT_NAME2), dept_name4 = b.Max(x => x.DEPT_NAME4) }).ToList(); o.ForEach(s => { s.m_Saler.DEPT_NAME8 = s.DEPT_NAME8; s.m_Saler.DEPT_NAME4 = s.dept_name4; s.m_Saler.DEPT_NAME2 = s.dept_name2; }); var i = o.Select(s => s.m_Saler).ToList(); //按SalerID從小到大排序 i.Sort((x, y) => x.SalerID.CompareTo(y.SalerID)); return View(i); }
lambda表達式獲取數據,感受還不如原生sql,畢竟語句有點複雜sql