DataContext.GetChangeSet Metoda
Definicja
Ważny
Niektóre informacje dotyczą produktów przedpremierowych, które mogą zostać znacznie zmodyfikowane przed premierą. Microsoft nie udziela żadnych gwarancji, ani wyraźnych, ani domniemanych, dotyczących informacji podanych tutaj.
Pobiera zmodyfikowane obiekty śledzone przez DataContextelement .
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
Zwraca
Zestaw obiektów jest zwracany jako trzy kolekcje tylko do odczytu.
Przykłady
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()
Uwagi
Zwróć uwagę na następujące zagadnienia:
GetChangeSet mogą mieć skutki uboczne, takie jak wnioskowanie operacji wstawiania i usuwania, które są zwykle wykonywane w czasie SubmitChanges. Na przykład obiekty używane w następujących operacjach mogą tworzyć odpowiednie operacje wnioskowane na poniższej liście:
Add do InsertOnSubmit.
EntityRef<TEntity> przypisanie do wartości null (prawdopodobnie z powodu RemoveDeleteOnSubmitwartości .
Zestaw może nie być uporządkowany zgodnie z ograniczeniami klucza obcego.
Wartości generowane przez bazę danych (na przykład wartości klucza podstawowego i obcego, znaczniki czasu itd.) nie są dostępne. Takie informacje wymagają wykonania polecenia bazy danych i być może propagacji pobranych informacji (na przykład klucza obcego z klucza podstawowego).
Zestaw zmienionych obiektów jest obliczany w momencie wywołania. Kolejne wywołania umożliwiające SubmitChanges utworzenie innego zestawu, jeśli zostaną wprowadzone dodatkowe zmiany.
Dane wyjściowe, gdy nie wprowadzono żadnych zmian, są wyświetlane w następujący sposób:
{Added: 0, Removed: 0, Modified: 0}