ARTICLE

Inner Join Using LINQ For Multiple Tables (3 Tables Now)

Posted by Vijay Prativadi Articles | LINQ October 23, 2012
Today, in this article let’s play around with one of the interesting and most useful concepts in LINQ.
Reader Level:

 Introduction

 

Today, in this article let's play around with one of the interesting and most useful concepts 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 using a LINQ inner join.".

 

Step 1: Create a "ASP.NET Web Application", as in:

 

new-project-window.jpg
 

Step 2: The design of the Employee table looks like this:
 

employee-table.jpg
 employee-ID-table.jpg


 

Step 3: The design of the Position table looks like this:
 

position-table.jpg
 

position-ID-table.jpg
 

Step 4: The design of the 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 rin objEntities.Employeejoin p in objEntities.Position on r.EmpId equals p.EmpIdjoin qinobjEntities.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

Login to add your contents and source code to this article
post comment
     
COMMENT USING
PREMIUM SPONSORS
Over-C is a holistic consortium of communications and technology specialists. We build, deploy and market both business as well as consumer products and solutions.
Get Career Advice from Experts
SPONSORED BY
  • PDF reports have never been easier to create. With our included WYSIWYG Designer, you can layout your reports, set up your data source and let DynamicPDF ReportWriter do the rest.
Get Career Advice from Experts