在Linq to Entity 中使用lambda表达式来实现Left Join和Join

简介: 1、读取用户和部门两个表的左连接: var sg = db.Users.GroupJoin(db.Departments, u => u.DepartmentId, d => d.DepartmentId, (u,d) => new { u, d }).

1、读取用户和部门两个表的左连接:

var sg = db.Users.GroupJoin(db.Departments, u => u.DepartmentId, d => d.DepartmentId, (u,d) => new { u, d }).Select(o=>o).ToList();

注意:上面将返回所用用户信息和对应的部门信息(即用户部门ID信息缺少,那么用户列表也会显示)

 

2、读取指定返回列表字段的左连接信息:

 var GJoinList = db.Sys_User.GroupJoin(db.Sys_Department, u => u.DepartmentId, d => d.DepartmentId, (u,d) => new { UserId=u.UserId, Account=u.Account, RealName=u.RealName, EnabledMark=u.EnabledMark, DeleteMark=u.DeleteMark,DepartmentName = d.FirstOrDefault(x=>x.DepartmentId==u.DepartmentId).FullName}).Select(o=>o);

 

3、读取连接表:

var sg = db.Users.Join(db.Departments, u => u.DepartmentId, d => d.DepartmentId, (u,d) => new { u, d }).Select(o=>o).ToList();

注意:这里将只显示用户里DepartmentId和部门表里DepartmentId相等的信息,如果用户没有部门ID则此条用户信息不会显示

 

 var data = db.CRM_OrderDetails.Join(db.CRM_Order, d => d.OrderId, o => o.OrderId, (d, o) => new { d, o }).Select(p => new ProductsListModel() {
                OrderId =p.o.OrderId,
                OrderCode=p.o.OrderCode,
                CustomerName=p.o.CustomerName,
                ProductName=p.d.ProductName,
                UnitId=p.d.UnitId,
                Qty=p.d.Qty,
                Price=p.d.Price,
                Amount=p.d.Amount,
                TaxAmount=p.d.TaxAmount,
                TaxCostAmount=p.d.TaxCostAmount,
                CreateTime=p.d.CreateTime,
                EndTime=p.d.EndTime,
                Description=p.d.Description
            }).Where(expression).OrderBy(orderbyExpression);

 

学习交流群:364976091
相关文章
|
2月前
|
关系型数据库 数据挖掘 数据库
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
53 2
|
2月前
|
关系型数据库 数据挖掘 数据库
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
解析数据库联结:应用与实践中的 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN 与 CROSS JOIN
72 1
|
SQL 开发框架 .NET
linq中left join和inner join的正确用法
linq中left join和inner join的正确用法
SQL外部联合:right outer join、left outer join、full outer join
SQL将外部联合分为了右外部联合(right outer join)、左外部联合(left outer join)、完全外部联合(full outer join)3个类型。
|
存储 .NET C#
C# LINQ 详解 From Where Select Group Into OrderBy Let Join
目录 1. 概述 2. from子句 3. where子句 4. select子句 5. group子句 6. into子句 7. 排序子句 8. let子句 9. join子句 10. 小结 1. 概述     LINQ的全称是Language Integrated Query,中文译成“语言集成查询”。
2128 0
|
SQL 数据库
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
139 0
SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
|
机器学习/深度学习 .NET 索引
LInq之Take Skip TakeWhile SkipWhile Reverse Union Concat 用法
废话不多说,直接上代码,代码有注释!自行运行测试! class Program { static void Main(string[] args) { string[] names = { "郭靖", "李莫愁", "欧阳晓晓", "黄蓉", "黄药师", "郭靖", "黄蓉" }; //Take()方法:用于从一个序列的开头返回指定数量的元素。
1042 0