DataContext.GetChangeSet Metod

Definition

Hämtar de ändrade objekten som spåras av DataContext.

public:
 System::Data::Linq::ChangeSet ^ GetChangeSet();
public System.Data.Linq.ChangeSet GetChangeSet();
member this.GetChangeSet : unit -> System.Data.Linq.ChangeSet
Public Function GetChangeSet () As ChangeSet

Returer

Uppsättningen objekt returneras som tre skrivskyddade samlingar.

Exempel

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()

Kommentarer

Observera följande överväganden:

  • GetChangeSet kan ha biverkningar, till exempel slutsatsdragning av infognings- och borttagningsåtgärder som vanligtvis utförs vid tidpunkten SubmitChangesför . Objekt som används i följande åtgärder kan till exempel skapa motsvarande härledda åtgärder i följande lista:

  • Uppsättningen kan inte ordnas enligt begränsningar för sekundärnyckel.

  • Databasgenererade värden (till exempel primär- och sekundärnyckelvärden, tidsstämplar och så vidare) är inte tillgängliga. Sådan information kräver körning av databaskommandon och kanske spridning av hämtad information (till exempel sekundärnyckel från primärnyckel).

  • Uppsättningen ändrade objekt beräknas vid tidpunkten för anropet. Efterföljande anrop till SubmitChanges kan skapa en annan uppsättning om ytterligare ändringar görs.

Utdata när inga ändringar har gjorts visas på följande sätt:

{Added: 0, Removed: 0, Modified: 0}

Gäller för