Freigeben über


LINQ to SQL (SQL Server Compact)

Die sprachintegrierte Abfrage (Language-Integrated Query, LINQ to SQL) ist eine Komponente von .NET Framework 3.5, die eine Laufzeitinfrastruktur zum Verwalten relationaler Daten als Objekte bereitstellt, ohne dass auf die Möglichkeit von Abfragen verzichtet werden muss. LINQ to SQL übersetzt dazu sprachintegrierte Abfragen in SQL zur Ausführung durch die Datenbank und übersetzt dann die in tabellarischem Format vorliegenden Ergebnisse wieder in Objekte, die von Ihnen definiert wurden. Ihre Anwendung kann die Objekte dann ändern, und LINQ to SQL verfolgt Ihre Änderungen automatisch im Hintergrund.

Die LINQ to SQL-Laufzeitinfrastruktur und die Entwurfszeittools reduzieren die Arbeitsauslastung des Entwicklers für Datenbankanwendungen in erheblichem Maße. LINQ to SQL ist unabhängig von der Sprache. Jede Sprache, die zum Bereitstellen einer sprachenintegrierten Abfrage entwickelt wurde, kann durch sie den Zugriff auf Datenbankinformationen ermöglichen, die in relationalen Datenbanken gespeichert sind.

Hinweis

Relationale Daten erscheinen als Auflistung zweidimensionaler Tabellen (Beziehungen oder Flatfiles), bei denen gemeinsame Spalten Tabellen verbinden. Zur effektiven Verwendung von LINQ to SQL müssen Sie mit den zugrunde liegenden Prinzipien relationaler Datenbanken vertraut sein.

LINQ to SQL in SQL Server Compact

SQL Server Compact 3.5 wird standardmäßig für alle Microsoft Visual Studio 2008-Editionen installiert und steht daher auf dem Entwicklungscomputer zur Verwendung mit LINQ to SQL zur Verfügung. Allerdings unterscheidet sich die Bereitstellung einer Anwendung, die SQL Server Compact 3.5 und LINQ to SQL verwendet, von der Bereitstellung einer SQL Server-Anwendung. Da SQL Server Compact 3.5 eine eingebettete Datenbank ist, werden Anbieter und Modul in ein Paket gepackt.

SQL Server Compact 3.5 ist vergleichbar mit SQL Server, weil das Produkt separat von .NET Framework installiert werden muss. SQL Server Compact 3.5 kann allerdings privat bereitgestellt oder in die Anwendung eingebettet werden. Dadurch wird die Verwendung lokaler Daten für die Installationsanforderungen der Anwendung transparent. Sie können SQL Server Compact 3.5 in Ihre Anwendung einbetten, oder Sie können die SQL Server Compact 3.5 Windows Installer-Datei (SSCERuntime-<lang>.msi) verwenden.

SQL Server Compact 3.5 wird als eine Gruppe von DLLs gepackt, die direkt mit Datenbankdateien (Erweiterung SDF) arbeiten können. Die DLL-Dateien von SQL Server Compact 3.5 sind klein, sodass die Gesamtgröße der Anwendung reduziert wird. Für eingebettete Verteilungen sind keine Administratorrechte erforderlich, um eine lokale Datenspeicherfunktionalität hinzuzufügen.

Zu den Vorteilen der LINQ to SQL-Funktionalität in SQL Server Compact 3.5 gehören: 

  • Vertraute SQL Server-Syntax beim Schreiben von Abfragen

  • Syntaxfehler- und Typsicherheitsüberprüfung zur Kompilierzeit

  • Verbesserte Debuggerunterstützung

  • IntelliSense-Unterstützung

  • Leistungsstarke Filterungs-, Sortierungs- und Gruppierungsfunktionen

  • Konsistentes Modell zum Arbeiten mit Daten über verschiedene Arten von Datenquellen und Formate hinweg

Unterschiede zu SQL Server

Die SQL Server Compact 3.5-Funktionen stellen eine umfassende Teilmenge der anderen SQL Server-Versionen hinsichtlich lokaler, eingebetteter Datenszenarien bereit. Durch die Verwendung einer eingebetteten Bereitstellung unterstützt SQL Server Compact 3.5 eine umfassende Gruppe von Funktionen für lokale Datenszenarien, die über alle Microsoft-Clients – von Geräten bis hin zu Desktopcomputern – hinweg konsistent sind. LINQ to SQL in SQL Server Compact 3.5:

  • Unterstützt die LINQ to SQL-Laufzeit und das SQLMetal-Befehlszeilentool

  • Unterstützt eine umfassende Teilmenge der SQL Server-Datentypen und -Funktionen

  • Unterstützt eine umfassende Teilmenge an SQL-Konstrukten hinsichtlich lokaler Datenszenarien

  • Der Abfrageoptimierer ist für lokale Datenszenarien konzipiert. Sein Timeout könnte ablaufen, wenn LINQ to SQL-Abfragen bei der Zuordnung zu SQL-Abfragen zu komplex werden.

  • Unterstützt keine gespeicherten Prozeduren oder Ansichten

  • Bietet keine Unterstützung des O/R-Designers (Object Relational Designer)

  • Unterstützt keine partielle Vertrauenswürdigkeit

Zum Optimieren der Leistung von LINQ to SQL in SQL Server Compact 3.5 muss die Transact-SQL-Abfrage mit der kompilierten LINQ to SQL-Abfragefunktion vorab erstellt werden. Eine kompilierte Abfrage sollte immer dann verwendet werden, wenn dies möglich ist. Außerdem muss DataContext für LINQ to SQL im schreibgeschützten Modus verwendet werden, wenn keine Updates erforderlich sind. Legen Sie DataContext mit der folgenden Anweisung fest:

DataContext.ObjectTrackingEnabled=false

Siehe auch

Andere Ressourcen

LINQ to SQL

Language-Integrated Query (LINQ)