Bagikan melalui


DataContext.GetChangeSet Metode

Definisi

Mendapatkan objek yang dimodifikasi yang dilacak oleh 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

Mengembalikan

Kumpulan objek dikembalikan sebagai tiga koleksi baca-saja.

Contoh

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

Keterangan

Perhatikan pertimbangan berikut:

  • GetChangeSet mungkin memiliki efek samping, seperti inferensi operasi sisipkan dan hapus yang biasanya dilakukan pada saat SubmitChanges. Misalnya, objek yang digunakan dalam operasi berikut dapat membuat operasi yang disimpulkan terkait dalam daftar berikut:

  • Set mungkin tidak diurutkan sesuai dengan batasan kunci asing.

  • Nilai yang dihasilkan database (misalnya, nilai kunci primer dan asing, tanda waktu, dan sebagainya) tidak tersedia. Informasi tersebut memerlukan eksekusi perintah database dan mungkin penyebaran informasi yang diambil (misalnya, kunci asing dari kunci primer).

  • Kumpulan objek yang diubah dihitung pada saat panggilan. Panggilan berikutnya untuk SubmitChanges dapat menghasilkan set yang berbeda jika perubahan tambahan dilakukan.

Output ketika tidak ada perubahan yang dibuat muncul sebagai berikut:

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

Berlaku untuk