2011-04-30 14 views

Respuesta

39

Código para la unión de 3 mesas es:

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

Gracias

+1

Este es un gran ejemplo. ¡Gracias! –

+0

Si no te importa, puedes elaborar la sintaxis. –

5

prueba este para unirse a 2 tablas utilizando la expresión 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

Than ks, pero ¿me pueden guiar en cómo utilizar el proyector selecto en este código y qué puedo hacer para unirme a 3 Table? gracias – Arian

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