在LINQ to SQL中,带有into‘expression’的联接子句称为Group联接。在LINQ to SQL中,Group联接根据两个集合中的匹配元素生成对象元素序列。
使用LINQ to SQL组联接从多个表获取数据的语法。
var result = from ed in db.EmployeeDetails join d in db. Departments on ed.DeptId equals d.DeptId into edept from dpem in edept select new { Name = ed.EmpName, Department = dpem.DeptName };
从上面的语法中,我们加入了“EmployeeDetails”,“Departments”表,通过group join得到需要的数据。
在开始实现LINQ to SQL组联接示例之前,首先需要创建一个包含所需表的数据库,并将这些表映射到LINQ to SQL文件(.dbml)。
若要了解映射过程,请单击链接LINQ to SQL。
一旦创建了所需的表并将其映射到.dbml文件。现在,希望显示应用程序中的数据。为此,无涯教程右键单击application->Select Add->New Item-> Select web Form->将名称指定为Default.aspx,然后单击OK按钮。
现在打开Default.aspx页面并编写代码,如下所示:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="gvDetails" runat="server"></asp:GridView> </div> </form> </body> </html>
现在打开文件后面的代码并编写代码,如下所示:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { EmployeeDBDataContext db = new EmployeeDBDataContext(); if (!Page.IsPostBack) { var result = from ed in db.EmployeeDetails join d in db.Departments on ed.DeptId equals d.DeptId into edept from dpem in edept select new { Name = ed.EmpName, Location = ed.Location, Gender = ed.Gender, Department = dpem.DeptName }; gvDetails.DataSource = result; gvDetails.DataBind(); } } }
从上面的例子中,我们尝试使用 Group Join 从“EmployeeDetails”和“Departments”表中获取数据。
链接:https://www.learnfk.comhttps://www.learnfk.com/linq/linq-to-sql-group-join.html
来源:LearnFk无涯教程网
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)