Linq : anonymous types

  1. Wat zijn anonieme types?
  2. Voorbeeld
  3. Hiërarchisch shapen
  4. Shapen na join

Wat zijn anonieme types?

Anonieme types staan je toe om binnen een statement een type te definiëren zonder daarbij een klasse te moeten aanmaken.
Deze anonieme types zijn bijzonder nuttig bij het 'shapen' van de resultaten van een Linq-query.

Voorbeeld

Hiërarchisch shapen

We willen per reorderlevel de producten zien die meer dan €50 kosten
het reorderlevel geeft aan tot hoeveel items de stock moet zijn gedaald om een product opnieuw te bestellen

var reorderQuery = from p in db.Products
                   where p.UnitPrice > 50
                   group p by p.ReorderLevel ;

foreach (var res in reorderQuery)
{
	Console.WriteLine(res.Key);
	foreach (var product in res)
	{
		Console.WriteLine("\t" +product.ProductName);
	}
}

Deze query met Linqpad (DataContext wordt automatisch aangemaakt):

Shapen na join

var products = from p in db.Products
               where p.UnitPrice > 50
               select new
               {
                  Id = p.ProductID,
                  Name = p.ProductName,
                  Last5Orders = p.OrderDetails.Take(5)
               };
			   
foreach (var product in products)
{
	Console.WriteLine("Product: " + product.Name);
	foreach (var order in product.Last5Orders)
	{
		Console.WriteLine("\tID: " + order.OrderID + " / Qty.: " + order.Quantity);
	}
}

Meer tutorials:
leer ook: html | xhtml | css | asp | asp.net | c# | ado.net | linq | ajax | java | javascript
Valid HTML 4.01! Valid CSS! © - Cursusweb