How to Perform Self-JOIN using LINQ

Introduction

In this blog we will see how to perform self-join using LINQ.

Step 1: Create asp.net web application

SQL Script

  1. SELECT p.FirstName, q.ManagerName   
  2. FROM Employee p  
  3. INNER JOIN Employee q  
  4. ON p.ManagerID = q.EmpID  

Webform1.aspx

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Self_Join_using_LINQ.WebForm1" %>  
  2.   
  3. <!DOCTYPE html>  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title></title>  
  8. </head>  
  9. <body>  
  10.     <form id="form1" runat="server">  
  11.     <div>  
  12.         <asp:GridView ID="GridView1" runat="server"></asp:GridView>  
  13.     </div>  
  14.     </form>  
  15. </body>  
  16. </html>  

Webform1.aspx.cs

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7.   
  8. namespace Self_Join_using_LINQ  
  9. {  
  10.     public partial class WebForm1 : System.Web.UI.Page  
  11.     {  
  12.   
  13.         EmployeeDBEntities objEmpEntities = new EmployeeDBEntities();  
  14.         protected void Page_Load(object sender, EventArgs e)  
  15.         {  
  16.             var query = from p in objEmpEntities.Employees  
  17.                         join q in objEmpEntities.Employees on p.ManagerId equals q.EmpId  
  18.                         select new { p.FirstName, q.ManagerName };  
  19.   
  20.             GridView1.DataSource = query.ToList();  
  21.             GridView1.DataBind();  
  22.         }  
  23.   
  24.     }  
  25. }  

Output of the application looks like this

 

Summary

In this blog we have seen how we can perform self-join using LINQ. Happy coding!

MVC Corporation
MVC Corporation is consulting and IT services based company.