Поделиться через


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. Например, объекты, используемые в следующих операциях, могут создавать соответствующие выводимые операции в следующем списке:

  • Набор не может быть упорядочен в соответствии с ограничениями внешнего ключа.

  • Значения, созданные базой данных (например, значения первичного и внешнего ключа, метки времени и т. д.), недоступны. Для таких сведений требуется выполнение команды базы данных и, возможно, распространение полученных сведений (например, внешнего ключа из первичного ключа).

  • Набор измененных объектов вычисляется во время вызова. Последующие вызовы могут создавать SubmitChanges другой набор при внесении дополнительных изменений.

Выходные данные, если изменения не были внесены, отображаются следующим образом:

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

Применяется к