2011-04-30 53 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); 
} 
}