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.

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