DataContext.GetChangeSet Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de gewijzigde objecten op die worden bijgehouden door 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
Retouren
De set objecten wordt geretourneerd als drie alleen-lezen verzamelingen.
Voorbeelden
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()
Opmerkingen
Let op de volgende overwegingen:
GetChangeSet kan bijwerkingen hebben, zoals deductie van invoeg- en verwijderbewerkingen die meestal worden uitgevoerd op het moment van SubmitChanges. Objecten die in de volgende bewerkingen worden gebruikt, kunnen bijvoorbeeld overeenkomende uitgestelde bewerkingen maken in de volgende lijst:
Add tot InsertOnSubmit.
EntityRef<TEntity>toewijzing aan null (mogelijk vanwege Remove .DeleteOnSubmit
De set kan niet worden geordend op basis van beperkingen voor refererende sleutels.
Database gegenereerde waarden (bijvoorbeeld waarden voor primaire en refererende sleutels, tijdstempels, enzovoort) zijn niet beschikbaar. Voor dergelijke informatie is uitvoering van databaseopdrachten vereist en mogelijk de doorgifte van opgehaalde gegevens (bijvoorbeeld refererende sleutel van primaire sleutel).
De set gewijzigde objecten wordt berekend op het moment van de aanroep. Volgende aanroepen om een andere set te SubmitChanges produceren als er aanvullende wijzigingen worden aangebracht.
Uitvoer wanneer er geen wijzigingen zijn aangebracht, wordt als volgt weergegeven:
{Added: 0, Removed: 0, Modified: 0}