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 (возможно, из-за Remove .DeleteOnSubmit
Набор не может быть упорядочен в соответствии с ограничениями внешнего ключа.
Значения, созданные базой данных (например, значения первичного и внешнего ключа, метки времени и т. д.), недоступны. Для таких сведений требуется выполнение команды базы данных и, возможно, распространение полученных сведений (например, внешнего ключа из первичного ключа).
Набор измененных объектов вычисляется во время вызова. Последующие вызовы могут создавать SubmitChanges другой набор при внесении дополнительных изменений.
Выходные данные, если изменения не были внесены, отображаются следующим образом:
{Added: 0, Removed: 0, Modified: 0}