Freigeben über


Gewusst wie: Zurückgeben eines LINQ-Abfrageergebnisses als ein bestimmter Typ (Visual Basic)

Aktualisiert: November 2007

Language-Integrated Query (LINQ) vereinfacht den Zugriff auf Datenbankinformationen und das Ausführen von Abfragen. Standardmäßig geben LINQ-Abfragen eine Liste von Objekten als anonyme Typen zurück. Mithilfe der Select-Klausel können Sie auch angeben, dass eine Abfrage eine Liste eines bestimmten Typs zurückgibt.

Im folgenden Beispiel wird gezeigt, wie eine neue Anwendung erstellt wird, die eine SQL Server-Datenbank abfragt und die Ergebnisse als einen bestimmten benannten Typ darstellt. Weitere Informationen finden Sie unter Anonyme Typen und unter Select-Klausel (Visual Basic).

In den Beispielen dieses Themas wird die Beispieldatenbank Northwind verwendet. Wenn die Beispieldatenbank Northwind auf dem Entwicklungscomputer nicht installiert ist, können Sie sie von der Website Microsoft Download Center herunterladen. Anweisungen dazu finden Sie unter Herunterladen von Beispieldatenbanken (LINQ to SQL).

Hinweis:

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

So erstellen Sie eine Verbindung zu einer Datenbank

  1. Öffnen Sie in Visual Studio den Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansicht auf Server-Explorer/Datenbank-Explorer klicken.

  2. Klicken Sie im Server-Explorer/Datenbank-Explorer mit der rechten Maustaste auf Datenverbindungen und anschließend auf Verbindung hinzufügen.

  3. Geben Sie eine gültige Verbindung zur Beispieldatenbank Northwind an.

So fügen Sie ein Projekt hinzu, das eine LINQ to SQL-Datei enthält

  1. Zeigen Sie in Visual Studio im Menü Datei auf Neu, und klicken Sie auf Projekt. Wählen Sie Visual Basic-Windows Forms-Anwendung als Projekttyp aus.

  2. Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Wählen Sie die Elementvorlage LINQ to SQL-Klassen aus.

  3. Nennen Sie die Datei northwind.dbml. Klicken Sie auf Hinzufügen. Der Object Relational Designer (O/R-Designer) wird für die Datei northwind.dbml geöffnet.

So fügen Sie abzufragende Tabellen zum O/R-Designer hinzu

  1. Erweitern Sie im Server-Explorer/Datenbank-Explorer die Verbindung zur Datenbank Northwind. Erweitern Sie den Ordner Tabellen.

    Wenn Sie den O/R-Designer geschlossen haben, können Sie ihn durch Doppelklicken auf die zuvor hinzugefügte Datei northwind.dbml erneut öffnen.

  2. Klicken Sie auf die Tabelle Customers, und ziehen Sie sie in den linken Bereich des Designers.

    Der Designer erstellt ein neues Customer-Objekt für das Projekt. Sie können ein Abfrageergebnis als Customer-Typ oder als einen selbst erstellten Typ projizieren. In diesem Beispiel wird ein neuer Typ in einer späteren Prozedur erstellt, und ein Abfrageergebnis wird als dieser Typ projiziert.

  3. Speichern Sie die Änderungen, und schließen Sie den Designer.

  4. Speichern Sie das Projekt.

So fügen Sie Code für Datenbankabfragen und zum Anzeigen der Ergebnisse hinzu

  1. Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Standard-Windows Form (Form1) des Projekts.

  2. Doppelklicken Sie auf Form1, um die Form1-Klasse zu ändern.

  3. Fügen Sie nach der End Class-Anweisung der Form1-Klasse den folgenden Code hinzu, um einen CustomerInfo-Typ zu erstellen, der die Abfrageergebnisse für dieses Beispiel enthält.

    Public Class CustomerInfo
      Private _CompanyName As String
      Private _ContactName As String
    
      Public Property CompanyName() As String
        Get
          Return _CompanyName
        End Get
        Set(ByVal value As String)
          _CompanyName = value
        End Set
      End Property
    
      Public Property ContactName() As String
        Get
          Return _ContactName
        End Get
        Set(ByVal value As String)
          _ContactName = value
        End Set
      End Property
    End Class
    
  4. Wenn Sie dem O/R-Designer Tabellen hinzugefügt haben, wurde dem Projekt ein DataContext-Objekt vom Designer hinzugefügt. Dieses Objekt enthält den Code, der für den Zugriff auf diese Tabellen sowie auf einzelne Objekte und Aufzählungen jeder Tabelle benötigt wird. Das DataContext-Objekt des Projekts wird auf Grundlage des Namens der DBML-Datei benannt. Für dieses Projekt lautet der Name des DataContext-Objekts northwindDataContext.

    Sie können im Code eine Instanz von DataContext erstellen und die vom O/R-Designer angegebenen Tabellen abfragen.

    Fügen Sie folgenden Code im Load-Ereignis der Form1-Klasse hinzu, um die als Eigenschaften des Datenkontexts verfügbar gemachten Tabellen abzufragen. Die Select-Klausel der Abfrage erstellt für jedes Element des Abfrageergebnisses einen neuen CustomerInfo-Typ anstelle eines anonymen Typs.

    Dim db As New northwindDataContext
    
    Dim customerList = _
      From cust In db.Customers _
      Where cust.CompanyName.StartsWith("L") _
      Select New CustomerInfo With {.CompanyName = cust.CompanyName, _
                                    .ContactName = cust.ContactName}
    
    DataGridView1.DataSource = customerList
    
  5. Drücken Sie F5, um das Projekt auszuführen und die Ergebnisse anzuzeigen.

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Erstellen von LINQ to SQL-Klassen (O/R-Designer)

Konzepte

DataContext-Methoden (O/R-Designer)

Weitere Ressourcen

LINQ in Visual Basic

Abfragen (Visual Basic)

LINQ to SQL