2011-04-30 51 views
28

任何人能告诉我接合2和两个简单​​的例子3页的表使用LAMBDA EXPRESSION(
例如使用罗斯文表(订单,客户ID,雇员)接合2和3表中的简单的例子?使用lambda表达

+0

你选,从这里开始:HTTP: //msdn.microsoft.com/en-us/vcsharp/aa336746 – BrokenGlass 2011-04-30 06:03:11

+0

谢谢,但我想要LAMDA EXPRESSION版本 – Arian 2011-04-30 06:06:00

回答

39

代码加入2台用于连接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 
         }); 

感谢

+1

这是一个很好的例子。谢谢! – 2014-08-21 17:43:45

+0

如果你不介意,你可以详细说明语法。 – 2015-10-01 14:01:42

5

尝试这一个使用lambda表达式

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 
       }); 
+0

KS,但你能指导我如何使用这个代码上的选择投影机,我能做些什么来加入3表?谢谢 – Arian 2011-04-30 10:05:12

0
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); 
} 
}