ADO.NET Entity Framework 4.1: Sonunda dizgiler yerine lambda ifadeleriyle istekli yükleme

Womanne

Member
ADO.NET Entity Framework 4.1’deki gerçekten önemli bir gelişme, daha önce olduğu gibi dizeler yerine lambda ifadeleri kullanarak istekli yükleme için gereken Include() deyimlerini belirtme yeteneğidir. Bu, LINQ-to-SQL’de .NET 3.5’te zaten vardı, ancak Entity Framework 4.0’da henüz yoktu.

Duyuru



Önkoşul, ad alanının System.Data.Entity (dan EntityFramework.dll) kullanım deyimlerindedir çünkü lambdba-enabled buradadır içermek() bir uzatma yöntemi olarak saklanır. Yaşlı içermek() dizelere dayanarak, hala orada System.Data.Objects. Yeni içerme, eski ObjectContext API’sini temel alan ve henüz yeni DbContext API’sini temel almayan sorgular için de kullanılabilir.

WWWings6Entities ctx = new WWWings6Entities();
// Unsicheres Eager Loading im Stil von Entity Framework 1.0/4.0
var FlugQuery1 = (from x in ctx.Flug.Include("Passagier.Person")
.Include("Pilot") where x.Abflugort == "Rom" select x);


Console.WriteLine("Fluggast #1 von Flug " + FlugQuery1.ToList()
[2].FlugNr + ":" + FlugQuery1.ToList()[0].Passagier.ToList()
[0].Person.Name);
// Typsicheres Eager Loading im Entity Framework 4.1
var FlugQuery2 = (from x in ctx.Flug.Include(f =>
f.Passagier.Select(p => p.Person)).Include(f =>
f.Pilot) where x.Abflugort == "Berlin" select x);

Console.WriteLine("Fluggast #1 von Flug " + FlugQuery1.ToList()
[2].FlugNr + ":" + FlugQuery1.ToList()[0].Passagier.ToList()
[0].Person.Name);

ctx.Dispose();


()






Haberin Sonu
 
Üst