Vorgehensweise: Anzeigen eines ChangeSet-Objekts

Sie können die von einem DataContext verfolgten Änderungen mithilfe von GetChangeSet anzeigen.

Beispiel

Im folgenden Beispiel werden Kunden aus London abgerufen, der Ort wird in Paris geändert, und die Änderungen werden wieder an die Datenbank übergeben.

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

var custQuery =
    from cust in db.Customers
    where cust.City == "London"
    select cust;

foreach (Customer custObj in custQuery)
{
    Console.WriteLine("CustomerID: {0}", custObj.CustomerID);
    Console.WriteLine("\tOriginal value: {0}", custObj.City);
    custObj.City = "Paris";
    Console.WriteLine("\tUpdated value: {0}", custObj.City);
}

ChangeSet cs = db.GetChangeSet();
Console.Write("Total changes: {0}", cs);
// Freeze the console window.
Console.ReadLine();

db.SubmitChanges();
Dim db As New Northwnd("c:\northwnd.mdf")

Dim custQuery = _
    From cust In db.Customers _
    Where (cust.City = "London") _
    Select cust

For Each custObj As Customer In custQuery
    Console.WriteLine("CustomerID: {0}", custObj.CustomerID)
    Console.WriteLine(vbTab & "Original value: {0}", custObj.City)
    custObj.City = "Paris"
    Console.WriteLine(vbTab & "Updated value: {0}", custObj.City)
Next

Dim cs As ChangeSet = db.GetChangeSet()
Console.Write("Total changes: {0}", cs)
' Freeze the console window.
Console.ReadLine()

db.SubmitChanges()

Die Ausgabe dieses Codes ähnelt der folgenden. Beachten Sie, dass die Zusammenfassung am Ende zeigt, dass acht Änderungen vorgenommen wurden.

CustomerID: AROUT
  Original value: London
  Updated value: Paris
CustomerID: BSBEV
  Original value: London
  Updated value: Paris
CustomerID: CONSH
  Original value: London
  Updated value: Paris
CustomerID: EASTC
  Original value: London
  Updated value: Paris
CustomerID: NORTS
   Original value: London
   Updated value: Paris
CustomerID: PARIS
   Original value: London
   Updated value: Paris
CustomerID: SEVES
   Original value: London
   Updated value: Paris
CustomerID: SPECD
   Original value: London
   Updated value: Paris
Total changes: {Added: 0, Removed: 0, Modified: 8}

Siehe auch