首页 > 解决方案 > 在 linq 的左连接中进入关键字的目的?

问题描述

虽然这看起来很基本,但我在理解这个概念时遇到了很多困难,左连接实际上是如何工作的?当没有机会分组时,进入关键字含义的目的是什么,那么为什么要使用它来实现左连接??如何我们在这里分组的是什么?

public class LinqJoinController : Controller
    {
        //
        // GET: /LinqJoin/

        public List<Department> getAllDepartment()
        {
            return new List<Department>(){
                new Department{Id=1,Name="IT"},
                 new Department{Id=2,Name="HR"},

            };
        }

        public List<Employee> getAllEmployee()
        {
            return new List<Employee>(){
                new Employee{Id=1,Name="Sachin",DepartmentId=1},
                 new Employee{Id=2,Name="Ram",DepartmentId=1},
                  new Employee{Id=3,Name="Shyam",DepartmentId=2},
                 new Employee{Id=4,Name="Radhe"},
            };
        }
        public ActionResult Index()
        {
            var result = from  emp in getAllEmployee()
                         join dep in getAllDepartment()

                             on emp.DepartmentId equals dep.Id 
                             into eGroup
                             from dep in eGroup.DefaultIfEmpty()
                         select new EmployeeVM
                         {
                             DepartmentName = dep==null?"No Dept":dep.Name,
                             EmployeeName = emp.Name
                         };
            return View(result);
        }
    }
}

标签: linq

解决方案


推荐阅读