随便记录下 方便查

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

相关文章
相关标签/搜索