Introduction

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

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_Lambda.WebForm1" %>
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <title></title>
  6. </head>
  7. <body>
  8. <form id="form1" runat="server">
  9. <div>
  10. <asp:GridView ID="GridView1" runat="server"></asp:GridView>
  11. </div>
  12. </form>
  13. </body>
  14. </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. namespace Self_Join_Using_Lambda
  8. {
  9. public partial class WebForm1 : System.Web.UI.Page
  10. {
  11. EmployeeDBEntities objEntities = new EmployeeDBEntities();
  12. protected void Page_Load(object sender, EventArgs e)
  13. {
  14. //Self Join Using Lambda
  15. var query = objEntities.Employees.Join(objEntities.Employees, p => p.ManagerId, q => q.EmpId, (p, q) => new { p.FirstName, q.ManagerName });
  16. GridView1.DataSource = query.ToList();
  17. GridView1.DataBind();
  18. }
  19. }
  20. }

Output of the application looks like this

Summary

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