Delen via


Bewerkingen invoegen, bijwerken en verwijderen

U voert Insert, Updateen Delete bewerkingen in LINQ uit naar SQL door objecten toe te voegen, te wijzigen en te verwijderen in uw objectmodel. LINQ naar SQL vertaalt uw acties standaard naar SQL en verzendt de wijzigingen naar de database.

LINQ naar SQL biedt maximale flexibiliteit bij het bewerken en behouden van wijzigingen die u in uw objecten hebt aangebracht. Zodra entiteitsobjecten beschikbaar zijn (door ze op te halen via een query of door ze opnieuw samen te stellen), kunt u ze wijzigen als typische objecten in uw toepassing. Dat wil gezegd: u kunt hun waarden wijzigen, u kunt ze toevoegen aan uw verzamelingen en u kunt ze verwijderen uit uw verzamelingen. LINQ naar SQL houdt uw wijzigingen bij en is klaar om ze terug te sturen naar de database wanneer u aanroept SubmitChanges.

Notitie

LINQ naar SQL biedt geen ondersteuning voor trapsgewijs verwijderen of herkennen. Als u een rij in een tabel met beperkingen wilt verwijderen, moet u de ON DELETE CASCADE regel instellen in de beperking voor refererende sleutels in de database of uw eigen code gebruiken om eerst de onderliggende objecten te verwijderen die verhinderen dat het bovenliggende object wordt verwijderd. Anders wordt er een uitzondering gegenereerd. Zie Voor meer informatie : Rijen verwijderen uit de database.

In de volgende fragmenten worden de Customer en Order klassen uit de Northwind-voorbeelddatabase gebruikt. Klassedefinities worden niet weergegeven voor beknoptheid.

Northwnd db = new Northwnd(@"c:\Northwnd.mdf");

// Query for a specific customer.
var cust =
    (from c in db.Customers
     where c.CustomerID == "ALFKI"
     select c).First();

// Change the name of the contact.
cust.ContactName = "New Contact";

// Create and add a new Order to the Orders collection.
Order ord = new Order { OrderDate = DateTime.Now };
cust.Orders.Add(ord);

// Delete an existing Order.
Order ord0 = cust.Orders[0];

// Removing it from the table also removes it from the Customer’s list.
db.Orders.DeleteOnSubmit(ord0);

// Ask the DataContext to save all the changes.
db.SubmitChanges();
Dim db As New Northwnd("…\Northwnd.mdf")

Dim cust As Customer = _
(From c In db.Customers _
 Where c.CustomerID = "ALFKI" _
 Select c) _
.First()

' Change the name of the contact.
cust.ContactName = "New Contact"

' Create and add a new Order to Orders collection.
Dim ord As New Order With {.OrderDate = DateTime.Now}
cust.Orders.Add(ord)

' Delete an existing Order.
Dim ord0 As Order = cust.Orders(0)

' Removing it from the table also removes it from 
' the Customer’s list.
db.Orders.DeleteOnSubmit(ord0)

' Ask the DataContext to save all the changes.
db.SubmitChanges()

Wanneer u LINQ aanroept SubmitChanges, genereert en voert LINQ naar SQL automatisch de SQL-opdrachten uit die nodig zijn om uw wijzigingen terug te sturen naar de database.

Notitie

U kunt dit gedrag overschrijven met behulp van uw eigen aangepaste logica, meestal via een opgeslagen procedure. Zie Verantwoordelijkheden van de ontwikkelaar bij het overschrijven van standaardgedrag voor meer informatie.

Ontwikkelaars die Visual Studio gebruiken, kunnen de Object Relational Designer gebruiken om opgeslagen procedures voor dit doel te ontwikkelen.

Zie ook