Self-Join با دستور LINQ

در SQL دستور JOIN برای نمایش محتویات چند رکورد از جدول های مختلف استفاده می شود , این دستور شامل انواع (Full Join-Left Join-Right Join-INNer Join) میباشد , یکی از این دستورات Self-JOIN میباشد که در این مقاله با این دستور آشنا می شویم

Self-Join با دستور LINQ

Self_JOIN در LINQ چیست ؟

یک دستور ساده برای اتصال به بانک اطلاعاتی میباشد که به اطلاعات یک جدول  با استفاده از دستور LINQ دسترسی خواهد داشت . برای این کار مطابق مراحل زیر عمل میکنیم .

یک پروژه Web Application ایجاد می کنیم .

یک Entity Framework به پروژه اضافه می کنیم .

سپس جدول مورد نظر را انتخاب میکنیم (در این مثال جدول ما شامل id , name,family , Sallary) میباشد

یک کنترل GridView برای نمایش اطلاعات جدول به صفحه اضافه میکنیم

  <asp:GridView ID="GridView1" runat="server" CssClass="grid" BackColor="LightGoldenrodYellow"

                            BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None"

                            AutoGenerateColumns="True">

                            <AlternatingRowStyle BackColor="PaleGoldenrod" />

                            <FooterStyle BackColor="Tan" />

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

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

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

                            <SortedAscendingCellStyle BackColor="#FAFAE7" />

                            <SortedAscendingHeaderStyle BackColor="#DAC09E" />

                            <SortedDescendingCellStyle BackColor="#E1DB9C" />

                            <SortedDescendingHeaderStyle BackColor="#C2A47B" />

                        </asp:GridView>

یک کنترل Label به همراه یک Button اضافه می کنیم .

در رویداد کلیک دکمه دستور مربوط به SelfJOIN با استفاده از LINQ را فرا خوانی می کنیم .و در انتها کنترل GridView را مجدد به بانک اتصال می دهیم .

    protected void Button1_Click(object sender, EventArgs e)

        {

            var query = from r in objEntities.tblEmployee join q in objEntities.tblEmployee on r.Id equals q.EmpRoleId select new

            {

                Id = r.FirstName + " " + r.LastName, RoleEmployees = q.FirstName + " " + q.LastName };

            GridView1.DataSource = query;

            GridView1.DataBind();

        }

 

فایل های ضمیمه