【发布时间】:2011-04-30 05:58:28
【问题描述】:
谁能给我看两个使用LAMBDA EXPRESSION(连接2个和3个表的简单示例
例如使用 Northwind 表(Orders、CustomerID、EmployeeID)?
【问题讨论】:
-
谢谢,但我想要 LAMDA EXPRESSION 版本
标签: linq linq-to-sql c#-4.0 lambda c#-3.0
谁能给我看两个使用LAMBDA EXPRESSION(连接2个和3个表的简单示例
例如使用 Northwind 表(Orders、CustomerID、EmployeeID)?
【问题讨论】:
标签: linq linq-to-sql c#-4.0 lambda c#-3.0
加入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
});
谢谢
【讨论】:
尝试使用 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
});
【讨论】:
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);
}
}
【讨论】: