Gewusst wie: Zurückgeben eines LINQ-Abfrageergebnisses als ein bestimmter Typ (Visual Basic)
Language Integrated Query (LINQ) erleichtert den Zugriff auf Datenbankinformationen und das Ausführen von Abfragen. Standardmäßig geben LINQ-Abfragen eine Liste von Objekten als anonymen Typ zurück. Sie können auch angeben, dass eine Abfrage eine Liste eines bestimmten Typs mithilfe der Select
-Klausel zurückgibt.
Das folgende Beispiel zeigt, wie Sie eine neue Anwendung erstellen, die Abfragen für eine SQL Server-Datenbank ausführt und die Ergebnisse als bestimmten benannten Typ projiziert. Weitere Informationen finden Sie unter Anonyme Typen und Select-Klausel.
In den Beispielen in diesem Artikel wird die Northwind-Beispieldatenbank verwendet. Befindet sich diese Datenbank nicht auf Ihrem Entwicklungscomputer, können Sie sie aus dem Microsoft Download Center herunterladen. Anweisungen hierzu finden Sie unter Herunterladen von Beispieldatenbanken.
Hinweis
Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.
So stellen Sie eine Verbindung mit einer Datenbank her
Öffnen Sie in Visual Studio Server-Explorer/Datenbank-Explorer, indem Sie im Menü Ansicht auf Server-Explorer/Datenbank-Explorer klicken.
Klicken Sie in Server-Explorer/Datenbank-Explorer mit der rechten Maustaste auf Datenverbindungen, und wählen Sie dann Verbindung hinzufügen aus.
Geben Sie eine gültige Verbindung mit der Northwind-Beispieldatenbank an.
So fügen Sie ein Projekt hinzu, das eine LINQ to SQL-Datei enthält
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.
Klicken Sie im Menü Projekt auf Neues Element hinzufügen. Wählen Sie die Objektvorlage LINQ to SQL-Klassen.
Nennen Sie die Datei
northwind.dbml
. Klicken Sie auf Hinzufügen. Der Objektrelationale Designer (O/R-Designer) wird für die Datei „northwind.dbml“ geöffnet.
So fügen Sie Abfragen im O/R-Designer Tabellen hinzu
Erweitern Sie in Server-Explorer/Datenbank-Explorer die Verbindung mit der Northwind-Datenbank. Erweitern Sie den Ordner Tabellen .
Wenn Sie O/R-Designer geschlossen haben, können Sie das Tool erneut öffnen, indem Sie auf die Datei „northwind.dbml“ doppelklicken, die Sie zuvor hinzugefügt haben.
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 Ihr Projekt. Sie können ein Abfrageergebnis alsCustomer
-Typ oder als von Ihnen erstellten Typ projizieren. In diesem Beispiel wird ein neuer Typ in einer späteren Prozedur erstellt und ein Abfrageergebnis als dieser Typ projiziert.Speichern Sie Ihre Änderungen, und schließen Sie den Designer.
Speichern Sie das Projekt.
So fügen Sie Code hinzu, um die Datenbank abzufragen und die Ergebnisse anzuzeigen
Ziehen Sie aus der Toolbox ein DataGridView-Steuerelement auf das Windows-Standardformular „Form1“ Ihres Projekts.
Doppelklicken Sie auf Form1, um die Form1-Klasse zu ändern.
Fügen Sie nach der
End Class
-Anweisung der Form1-Klasse den folgenden Code hinzu, um einenCustomerInfo
-Typ zu erstellen, der die Abfrageergebnisse für dieses Beispiel enthält.Public Class CustomerInfo Public Property CompanyName As String Public Property ContactName As String End Class
Wenn Sie O/R-Designer Tabellen hinzugefügt haben, hat der Designer Ihrem Projekt ein DataContext-Objekt hinzugefügt. Dieses Objekt enthält den Code, den Sie benötigen, um auf diese Tabellen sowie auf einzelne Objekte und Auflistungen für jede Tabelle zuzugreifen. Das DataContext-Objekt für Ihr Projekt wird auf Grundlage des Namens der DBML-Datei benannt. Für dieses Projekt hat das DataContext-Objekt den Namen
northwindDataContext
.Sie können eine Instanz von DataContext in Ihrem Code erstellen und die von O/R-Designer angegebenen Tabellen abfragen.
Fügen Sie im Falle des
Load
-Ereignisses der Form1-Klasse den folgenden Code hinzu, um die Tabellen abzufragen, die als Eigenschaften Ihres Datenkontexts verfügbar gemacht werden. DieSelect
-Klausel der Abfrage erstellt einen neuenCustomerInfo
-Typ anstelle eines anonymen Typs für jedes Element des Abfrageergebnisses.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
Drücken Sie F5, um Ihr Projekt auszuführen und die Ergebnisse anzuzeigen.
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für