隨便記錄下 方便查

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

相關文章
相關標籤/搜索