使用 lambda 表达式连接 2 和 3 表的简单示例
Posted
技术标签:
【中文标题】使用 lambda 表达式连接 2 和 3 表的简单示例【英文标题】:Simple Examples of joining 2 and 3 table using lambda expression 【发布时间】:2011-04-30 05:58:28 【问题描述】:谁能给我看两个使用LAMBDA EXPRESSION(
连接2个和3个表的简单示例
例如使用 Northwind 表(Orders、CustomerID、EmployeeID)?
【问题讨论】:
从这里挑选:msdn.microsoft.com/en-us/vcsharp/aa336746 谢谢,但我想要 LAMDA EXPRESSION 版本 【参考方案1】:加入3个表的代码是:
var list = dc.Orders.
Join(dc.Order_Details,
o => o.OrderID, od => od.OrderID,
(o, od) => new
OrderID = o.OrderID,
OrderDate = o.OrderDate,
ShipName = o.ShipName,
Quantity = od.Quantity,
UnitPrice = od.UnitPrice,
ProductID = od.ProductID
).Join(dc.Products,
a => a.ProductID, p => p.ProductID,
(a, p) => new
OrderID = a.OrderID,
OrderDate = a.OrderDate,
ShipName = a.ShipName,
Quantity = a.Quantity,
UnitPrice = a.UnitPrice,
ProductName = p.ProductName
);
谢谢
【讨论】:
这是一个很好的例子。谢谢!【参考方案2】:尝试使用 lambda 表达式加入 2 个表
var list = dataModel.Customers
.Join( dataModel.Orders,
c => c.Id,
o => o.CustomerId,
(c, o) => new
CustomerId = c.Id,
CustomerFirstName = c.Firstname,
OrderNumber = o.Number
);
【讨论】:
谢谢,但您能指导我如何在此代码上使用 Select 投影仪吗?我该怎么做才能加入 3 Table?谢谢【参考方案3】:public void Linq102()
string[] categories = new string[]
"Beverages",
"Condiments",
"Vegetables",
"Dairy Products",
"Seafood" ;
List<Product> products = GetProductList();
var q =
from c in categories
join p in products on c equals p.Category
select new Category = c, p.ProductName ;
foreach (var v in q)
Console.WriteLine(v.ProductName + ": " + v.Category);
【讨论】:
以上是关于使用 lambda 表达式连接 2 和 3 表的简单示例的主要内容,如果未能解决你的问题,请参考以下文章
lambda 表达式使用 select 和 where 子句连接多个表
读Java8函数式编程笔记06_Lambda表达式编写并发程序