Sie sind hier: Startseite | Wissen
BASTA 2016
Begriff LINQ-to-Entities
Abkürzung L2E
Eintrag zuletzt aktualisiert am 15.02.2011

 Zur Stichwortliste unseres Lexikons

Was ist LINQ-to-Entities?

LINQ-to-Entities ist die LINQ-Variante für den Zugriff auf Modelle, die mit den ADO.NET Entity Framework Objectservices erstellt wurden. LINQ-to-Entities ist sehr ähnlich zu der LINQ-Syntax in LINQ-to-SQL.

LINQ-to-Entities wandelt LINQ-Befehle in datenbankspezifische SQL-Syntax (z.B. T-SQL für Microsoft SQL Server oder PL/SQL für Oracle) um.

Es gilt aber: LINQ-to-Entities ist nur die Abfragesprache im engeren Sinne, während LINQ-to-SQL als Begriff sowohl die Abfragesprache als auch das ORM-Werkzeug bezeichnet.

Beispiel 1 für LINQ-to-Entities

Das folgende Beispiel zeigt eine LINQ to Entities-Abfrage aller Flüge von einem Abflugort, die mindes-tens einen Passagier haben und auf denen mindestens ein Passagier mit einem bestimmten Nachnamen gebucht ist. Für diese Abfrage werden also schon die Beziehungen zwischen den Entitäten ausgenutzt. Das Entity Framework erzeugt automatisch einen SQL-Befehl mit den notwendigen Joins über die vier Tabellen Flug, Flug_Passagier, Passagier und Person.

String ort = "Rom";
string name = "Müller";

from f in modell.Flug
where f.Abflugort == ort && f.Passagier.Count > 0 &&
f.Passagier.Any(p => p.Person.Name == name)
select f;

Beispiel 2 für LINQ-to-Entities

Besonders eindrucksvoll wird die Prägnanz von LINQ to Entities gegenüber SQL beim Einsatz von Pa-ging. Paging bedeutet, dass aus einer Ergebnismenge nur ein bestimmter Teilbereich geliefert werden soll, z. B. Datensätze 20 bis 29. Dies realisiert man in LINQ to Entities wie in LINQ to Objects mit den Metho-den Skip() und Take() (bzw. den Sprachelementen Skip und Take in Visual Basic .NET). Verglichen mit dem umfangreichen SQL-Code, den man normalerweise dafür schreiben muss, ist LINQ to Entities hier eine Revolution!

string ort1 = "Frankfurt";
string ort2 = "München";
string ort3 = "Berlin";
int von = 20;
int anzahl = 10;

var fluege = (from f in modell.Flug
where f.Abflugort == ort1 || f.Abflugort == ort2 || f.Abflugort == ort3
orderby f.FlugNr
select f).Skip(von).Take(anzahl);

Beratung & Support:

Schulungen zu diesem Thema:

 Anfrage für eine individuelle Schulung zum Thema LINQ-To-Entities  Gesamter Schulungsthemenkatalog