Share via


Möglichkeiten von LINQ to SQL

Aktualisiert: November 2007

LINQ to SQL unterstützt alle wichtigen Funktionen, die Sie als SQL-Entwickler erwarten würden. Sie können Informationen abfragen und Informationen in Tabellen einfügen, aktualisieren und löschen.

Auswählen

Die Auswahl (Projektion) wird erreicht, indem eine LINQ-Abfrage in einer beliebigen Programmiersprache verfasst und zum Abrufen der Ergebnisse ausgeführt wird. LINQ to SQL übersetzt die Operationen in die entsprechenden SQL-Operationen, die Ihnen bekannt sind. Weitere Informationen finden Sie unter LINQ to SQL.

Im folgenden Beispiel werden die Firmennamen von Kunden aus London abgerufen und im Konsolenfenster dargestellt.

' Northwnd inherits from System.Data.Linq.DataContext.
Dim nw As New Northwnd("c:\northwnd.mdf")

Dim companyNameQuery = _
    From cust In nw.Customers _
    Where cust.City = "London" _
    Select cust.CompanyName

For Each customer In companyNameQuery
    Console.WriteLine(customer)
Next
// Northwnd inherits from System.Data.Linq.DataContext.
Northwnd nw = new Northwnd(@"northwnd.mdf");

var companyNameQuery =
    from cust in nw.Customers
    where cust.City == "London"
    select cust.CompanyName;

foreach (var customer in companyNameQuery)
{
    Console.WriteLine(customer);
}

Einfügen

Zum Ausführen eines SQL-Insert können Sie einfach dem erstellten Objektmodell Objekte hinzufügen und SubmitChanges im DataContext aufrufen.

Im folgenden Beispiel werden ein Kunde und Informationen zu diesem in die Customers-Tabelle eingefügt (mithilfe von InsertOnSubmit).

' Northwnd inherits from System.Data.Linq.DataContext.
Dim nw As New Northwnd("c:\northwnd.mdf")

Dim cust As New Customer With {.CompanyName = "SomeCompany", _
    .City = "London", _
    .CustomerID = 98128, _
    .PostalCode = 55555, .Phone = "555-555-5555"}
nw.Customers.InsertOnSubmit(cust)
' At this point, the new Customer object is added in the object model.
' In LINQ to SQL, the change is not sent to the database until
' SubmitChanges is called.
nw.SubmitChanges()
// Northwnd inherits from System.Data.Linq.DataContext.
Northwnd nw = new Northwnd(@"northwnd.mdf");

Customer cust = new Customer();
cust.CompanyName = "SomeCompany";
cust.City = "London";
cust.CustomerID = "98128";
cust.PostalCode = "55555";
cust.Phone = "555-555-5555";
nw.Customers.InsertOnSubmit(cust);

// At this point, the new Customer object is added in the object model.
// In LINQ to SQL, the change is not sent to the database until
// SubmitChanges is called.
nw.SubmitChanges();

Aktualisieren

Zum Aktualisieren eines Datenbankeintrags mit Update, rufen Sie zuerst das Element ab und bearbeiten es direkt im Objektmodell. Nachdem Sie das Objekt geändert haben, rufen Sie SubmitChanges im DataContext auf, um die Datenbank zu aktualisieren.

Im folgenden Beispiel werden alle Kunden aus London abgerufen. Dann wird der Name des Orts von „London“ in „London - Metro“ geändert. Schließlich wird SubmitChanges aufgerufen, um die Änderungen an die Datenbank zu senden.

Dim nw As New Northwnd("c:\northwnd.mdf")
Dim cityNameQuery = _
    From cust In nw.Customers _
    Where cust.City.Contains("London") _
    Select cust

For Each customer In cityNameQuery
    If customer.City = "London" Then
        customer.City = "London - Metro"
    End If
Next
nw.SubmitChanges()
Northwnd nw = new Northwnd(@"northwnd.mdf");

var cityNameQuery =
    from cust in nw.Customers
    where cust.City.Contains("London")
    select cust;

foreach (var customer in cityNameQuery)
{
    if (customer.City == "London")
    {
        customer.City = "London - Metro";
    }
}
nw.SubmitChanges();

Löschen

Wenn Sie ein Element löschen möchten (Delete), entfernen Sie dieses aus der entsprechenden Auflistung, und rufen Sie dann SubmitChanges im DataContext auf, um die Änderung zu bestätigen.

Hinweis:

Kaskadierte Löschvorgänge werden von LINQ to SQL nicht erkannt. Wenn Sie eine Zeile in einer Tabelle löschen möchten, die Einschränkungen dafür hat, finden Sie unter Gewusst wie: Löschen von Zeilen aus der Datenbank (LINQ to SQL) weitere Informationen.

Im folgenden Beispiel wird der Kunde mit der CustomerID98128 aus der Datenbank abgerufen. Nach dem Bestätigen des Abrufs wird DeleteOnSubmit aufgerufen, um das Objekt aus der Auflistung zu entfernen. Schließlich wird SubmitChanges aufgerufen, um die Löschung an die Datenbank weiterzuleiten.

Dim nw As New Northwnd("c:\northwnd.mdf")
Dim deleteIndivCust = _
    From cust In nw.Customers _
    Where cust.CustomerID = 98128 _
    Select cust

If deleteIndivCust.Count > 0 Then
    nw.Customers.DeleteOnSubmit(deleteIndivCust.First)
    nw.SubmitChanges()
End If
Northwnd nw = new Northwnd(@"northwnd.mdf");
var deleteIndivCust =
    from cust in nw.Customers
    where cust.CustomerID == "98128"
    select cust;

if (deleteIndivCust.Count() > 0)
{
    nw.Customers.DeleteOnSubmit(deleteIndivCust.First());
    nw.SubmitChanges();
}

Siehe auch

Konzepte

Das LINQ to SQL-Objektmodell

Erste Schritte (LINQ to SQL)

Weitere Ressourcen

Programmierhandbuch (LINQ to SQL)