LINQ-to-SQL (LTS)
Eintrag zuletzt aktualisiert am: 29.11.2013
LINQ-to-
SQL (früher D
LINQ) ist der (einfache) Objekt-Relationale Mapper (
ORM) im
.NET Framework seit
.NET Framework 3.5 (erschienen im November 2007). Er wurde schon im August 2008 durch das
ADO.NET Entity Framework abgelöst.
Wichtige Abgrenzung
LINQ-to-
SQL darf keineswegs mit
LINQ allgemein verwechselt werden. Manche Entwickler wollen gehört haben, dass
LINQ "tod" sei. Tatsächlich haben Sie wohl etwas über
LINQ-to-
SQL gelesen.
LINQ ist eine allgemeine Abfragesprache für ganz viele verschiedene Datenspeicher.
Vergleich
LINQ-to-
SQL und
ADO.NET Entity Framework.
LINQ-to-
SQL und
LINQ-to-Entities sind zwei ähnliche und hausintern bei Microsoft miteinander konkurrierende Ansätze.
LINQ-to-
SQL bietet weniger Optionen als
LINQ-to-Entities. Insbesondere gilt für
LINQ-to-
SQL die Einschränkung, dass Microsoft selbst nur einen Provider für Microsoft
SQL Server liefert und durch die Nicht-Offenlegung der Schnittstellen auch verhindern will, dass andere Hersteller Provider entwickeln. Das
LINQ-to-Entities zu Grundeliegende
.NET Entity Framework hingegen hat Microsoft für andere Anbieter geöffnet, sodass hier andere Provider verfügbar sind.
Wesentliche Unterschiede zwischen
LINQ-to-
SQL und dem
ADO.NET Entity Framework sind:
- LINQ-to-SQL unterstützt nur die 1:1-Abbildung zwischen Tabellen und Objekten
- LINQ-to-SQL unterstützt Vererbung nur mit einer Tabelle mit Diskriminatoren
- LINQ-to-SQL unterstützt nur Microsoft SQL Server