Sunday, September 23, 2018

Left Join and Right Join in LINQ

public class Employee
{
    public string Name { get; set; }
    public int ID { get; set; }
    public int DeptID { get; set; }
}

public class Department
{
    public int ID { get; set; }
    public string Name { get; set; }
}

List<Employee> ListOfEmployees = new List<Employee>();
List<Department> ListOfDepartment = new List<Department>();

/*--Left Join in SQL
select Emp.Name, Dept.Name from Employee Emp left join Department Dept on
Emp.DeptID = Dept.ID

--Right Join In SQL
select Emp.Name, Dept.Name from Employee Emp right join Department Dept on
Emp.DeptID = Dept.ID*/

//Left Join in LINQ
var LeftJoin = from emp in ListOfEmployees
               join dept in ListOfDepartment
               on emp.DeptID equals dept.ID into JoinedEmpDept
               from dept in JoinedEmpDept.DefaultIfEmpty()
               select new
               {
                   EmployeeName = emp.Name,
                   DepartmentName = dept != null ? dept.Name : null
               };

//Right join in LINQ
var RightJoin = from dept in ListOfDepartment
                join employee in ListOfEmployees
                on dept.ID equals employee.DeptID into joinDeptEmp
                from employee in joinDeptEmp.DefaultIfEmpty()
                select new
                {
                    EmployeeName = employee != null ? employee.Name : null,
                    DepartmentName = dept.Name
                };

No comments:

Post a Comment

Find the value from array when age is more than 30

 const data = [   { id: 1, name: 'Alice', age: 25 },   { id: 2, name: 'Bob', age: 30 },   { id: 3, name: 'Charlie', ...