DataContext.GetChangeSet Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает измененные объекты, отслеживаемые 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
Возвращаемое значение
Набор объектов возвращается в виде трех коллекций только для чтения.
Примеры
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()
Комментарии
Обратите внимание на следующие аспекты.
GetChangeSet может иметь побочные эффекты, такие как вывод операций вставки и удаления, которые обычно выполняются во время SubmitChanges. Например, объекты, используемые в следующих операциях, могут создавать соответствующие выводные операции в следующем списке:
Add изменено на InsertOnSubmit.
EntityRef<TEntity> присвоение значению NULL (возможно, из-за RemoveDeleteOnSubmit.
Набор не может быть упорядочен в соответствии с ограничениями внешнего ключа.
Созданные базой данных значения (например, значения первичного и внешнего ключа, метки времени и т. д.) недоступны. Для такой информации требуется выполнение команды базы данных и, возможно, распространение полученных сведений (например, внешний ключ из первичного ключа).
Набор измененных объектов вычисляется во время вызова. Последующие вызовы SubmitChanges могут создавать другой набор при внесении дополнительных изменений.
Выходные данные при отсутствии изменений отображаются следующим образом:
{Added: 0, Removed: 0, Modified: 0}