LINQ-to-SQL (LTS)
Eintrag zuletzt aktualisiert am: 29.11.2013
LINQ-to-SQL (früher DLINQ) 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.
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