Inner Join using LINQ for Multiple Tables (3 Tables Now)

Introduction

 

Today, in this article let's play around with one of the interesting and most useful concept in LINQ.

 

Question: What is inner join using LINQ for multiple tables?

 

In simple terms "It provides flexibility to pull out the matching result sets from 3 or more tables with help of inner join using LINQ"

 

Step 1: Create a new webform project

 

new-project-window.jpg
 

Step 2: Design of Employee table looks like this
 

employee-table.jpg
 

employee-ID-table.jpg
 

Step 3: Design of Position table looks like this
 

position-table.jpg
 

position-ID-table.jpg
 

Step 4: Design of Salary table looks like this
 

salary-table.jpg
 

salary-id-table.jpg

Step 5: The complete code of WebForm1.aspx looks like this

 

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="LINQInnerJoinApp._Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head id="Head1" runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <center>

        <div>

            <table>

                <tr>

                    <td colspan="2">

                        <asp:Label ID="Label1" runat="server" Text="INNER JOIN using LINQ for Multiple Tables (3 Tables)"

                            Font-Bold="true" Font-Size="Large" Font-Names="Verdana" ForeColor="Maroon"></asp:Label>

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <asp:Button ID="Button1" runat="server" Text="Select Data" Font-Names="Verdana" Width="213px"

                            BackColor="Orange" Font-Bold="True" OnClick="Button1_Click" />

                    </td>

                </tr>

                <tr>

                    <td colspan="2" align="center">

                        <br />

                        <asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan"

                            BorderWidth="1px" CellPadding="2" EnableModelValidation="True" ForeColor="Black"

                            GridLines="None" AutoGenerateColumns="False">

                            <AlternatingRowStyle BackColor="PaleGoldenrod"></AlternatingRowStyle>

                            <FooterStyle BackColor="Tan"></FooterStyle>

                            <HeaderStyle BackColor="Tan" Font-Bold="True"></HeaderStyle>

                            <PagerStyle HorizontalAlign="Center" BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue">

                            </PagerStyle>

                            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite"></SelectedRowStyle>

                            <Columns>

                                <asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="true" />

                                <asp:BoundField DataField="LastName" HeaderText="Last Name" />

                                <asp:BoundField DataField="Position1" HeaderText="Position" />

                                <asp:BoundField DataField="Salary1" HeaderText="Salary" />

                            </Columns>

                        </asp:GridView>

                    </td>

                </tr>

            </table>

        </div>

    </center>

    </form>

</body>

</html>

 

Step 6: The complete code of WebForm1.aspx.cs looks like this

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

namespace LINQInnerJoinApp

{

    public partial class _Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

            var query = from r in objEntities.Employeejoin p in objEntities.Position on r.EmpId equals p.EmpIdjoin q in objEntities.Salary on p.PosId equals q.PosIdselect new{r.FirstName,r.LastName,p.Position1,q.Salary1};

            GridView1.DataSource = query;

            GridView1.DataBind();

        }

        #region

        Instance MembersCompanyEntities objEntities = new CompanyEntities();

        #endregion

    }

}

 

Step 7: The output of the application looks like this

 

select-data.jpg
 

Step 8: The results retrieved output of the application looks like this

select-data-in-linq.jpg

I hope this article is useful for you ...I look forward for your comments and feedback....Thanks Vijay Prativadi

Up Next
    Ebook Download
    View all
    Learn
    View all
    MVC Corporation is consulting and IT services based company.