DataContext.GetChangeSet Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
Add ke InsertOnSubmit.
EntityRef<TEntity> penugasan ke null (mungkin karena Remove ke DeleteOnSubmit.
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}