The source code to join multiple data sources using Linq Join() method, which is given below. The given program is compiled and executed successfully on Microsoft Visual Studio.
//C# program to join multiple data sources
//using Linq Join() Method.
using System;
using System.Linq;
using System.Collections.Generic;
public class Employee
{
public int ID;
public int Salary;
public int DEPT_ID;
public int ADD_ID;
public string Name;
}
public class Department
{
public int DEPT_ID;
public string DEPT_Name;
}
public class Address
{
public int ADD_ID;
public string address;
}
public class JoinDemo
{
static void Main(string[] args)
{
List<Employee> employees = new List<Employee>()
{
new Employee {ID=101, Name="Amit " , Salary=4000,DEPT_ID=101,ADD_ID=201},
new Employee {ID=102, Name="Amit " , Salary=3800,DEPT_ID=102,ADD_ID=202},
new Employee {ID=103, Name="Salman" , Salary=3500,DEPT_ID=103,ADD_ID=203},
new Employee {ID=104, Name="Ram " , Salary=2000,DEPT_ID=101,ADD_ID=204},
new Employee {ID=105, Name="Shyam " , Salary=7000,DEPT_ID=102,ADD_ID=205},
new Employee {ID=106, Name="Kishor" , Salary=5000,DEPT_ID=103,ADD_ID=206},
};
List<Department> departments = new List<Department>()
{
new Department {DEPT_ID=101, DEPT_Name="HR " },
new Department {DEPT_ID=102, DEPT_Name="ACCOUNTS " },
new Department {DEPT_ID=103, DEPT_Name="SALES " },
};
List<Address> addresses = new List<Address>()
{
new Address {ADD_ID=201, address="AGRA " },
new Address {ADD_ID=202, address="BAMBAI " },
new Address {ADD_ID=203, address="CHENNAI " },
new Address {ADD_ID=204, address="DELHI " },
new Address {ADD_ID=205, address="GWALIOR " },
new Address {ADD_ID=206, address="JHASHI " },
};
var Result = employees.Join(departments,
emp1 => emp1.DEPT_ID,
dept => dept.DEPT_ID,
(emp1, dept)=>new {emp1, dept}
)
.Join(addresses,
emp2 => emp2.emp1.ADD_ID,
add => add.ADD_ID,
(emp2, add)=>new {emp2, add}
)
.Select(
e => new
{
ID = e.emp2.emp1.ID,
Name = e.emp2.emp1.Name,
Salary = e.emp2.emp1.Salary,
DeptName = e.emp2.dept.DEPT_Name,
address = e.add.address
}).ToList();
Console.WriteLine("Employee Details: ");
foreach (var e in Result)
{
Console.WriteLine("\tID: " + e.ID + ", Name: " + e.Name + ", Salary: " + e.Salary + ", Department: " + e.DeptName+", Address: "+e.address);
}
}
}
In the above program, we created four classes Employee, Department, Address, and JoinDemo. Employee class contains data members ID, Name, Salary, and DEPT_ID. Department class contains DEPT_ID and DEPT_Name and Address class contains ADD_ID and address.
Now look to the JoinDemo class, the JoinDemo class contains the Main() method. In the Main() method we created a list of employees, departments, and addresses.
var Result = employees.Join(departments,
emp1 => emp1.DEPT_ID,
dept => dept.DEPT_ID,
(emp1, dept)=>new {emp1, dept}
)
.Join(addresses,
emp2 => emp2.emp1.ADD_ID,
add => add.ADD_ID,
(emp2, add)=>new {emp2, add}
)
.Select(
e => new
{
ID = e.emp2.emp1.ID,
Name = e.emp2.emp1.Name,
Salary = e.emp2.emp1.Salary,
DeptName = e.emp2.dept.DEPT_Name,
address = e.add.address
}).ToList();
In the above code we joined Employee, Department and Address class based on DEPT_ID and ADD_ID using Join() method.
Program:
The source code to join multiple data sources using Linq Join() method, which is given below. The given program is compiled and executed successfully on Microsoft Visual Studio.
Output:
Employee Details: ID: 101, Name: Amit , Salary: 4000, Department: HR , Address: AGRA ID: 102, Name: Amit , Salary: 3800, Department: ACCOUNTS , Address: BAMBAI ID: 103, Name: Salman, Salary: 3500, Department: SALES , Address: CHENNAI ID: 104, Name: Ram , Salary: 2000, Department: HR , Address: DELHI ID: 105, Name: Shyam , Salary: 7000, Department: ACCOUNTS , Address: GWALIOR ID: 106, Name: Kishor, Salary: 5000, Department: SALES , Address: JHASHI Press any key to continue . . .Explanation:
In the above program, we created four classes Employee, Department, Address, and JoinDemo. Employee class contains data members ID, Name, Salary, and DEPT_ID. Department class contains DEPT_ID and DEPT_Name and Address class contains ADD_ID and address.
Now look to the JoinDemo class, the JoinDemo class contains the Main() method. In the Main() method we created a list of employees, departments, and addresses.
var Result = employees.Join(departments, emp1 => emp1.DEPT_ID, dept => dept.DEPT_ID, (emp1, dept)=>new {emp1, dept} ) .Join(addresses, emp2 => emp2.emp1.ADD_ID, add => add.ADD_ID, (emp2, add)=>new {emp2, add} ) .Select( e => new { ID = e.emp2.emp1.ID, Name = e.emp2.emp1.Name, Salary = e.emp2.emp1.Salary, DeptName = e.emp2.dept.DEPT_Name, address = e.add.address }).ToList();In the above code we joined Employee, Department and Address class based on DEPT_ID and ADD_ID using Join() method.
Console.WriteLine("Employee Details: "); foreach (var e in Result) { Console.WriteLine("\tID: " + e.ID + ", Name: " + e.Name + ", Salary: " + e.Salary + ", Department: " + e.DeptName+", Address: "+e.address); }The above code will print the result of join on the console screen.
need an explanation for this answer? contact us directly to get an explanation for this answer