DataContext.GetChangeSet Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém os objetos modificados controlados pelo 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
Retornos
O conjunto de objetos é retornado como três coleções somente leitura.
Exemplos
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()
Comentários
Observe as seguintes considerações:
GetChangeSet pode ter efeitos colaterais, como a inferência de operações de inserção e exclusão que geralmente são executadas no momento do SubmitChanges. Por exemplo, objetos usados nas seguintes operações podem criar operações inferidas correspondentes na lista a seguir:
Add para InsertOnSubmit.
EntityRef<TEntity>atribuição a nulo (possivelmente devido Remove a .DeleteOnSubmit
O conjunto pode não ser ordenado de acordo com restrições de chave estrangeira.
Os valores gerados pelo banco de dados (por exemplo, valores de chave primária e estrangeira, carimbos de data/hora e assim por diante) não estão disponíveis. Essas informações exigem a execução do comando de banco de dados e talvez a propagação de informações recuperadas (por exemplo, chave estrangeira da chave primária).
O conjunto de objetos alterados é calculado no momento da chamada. Chamadas subsequentes para SubmitChanges poderão produzir um conjunto diferente se forem feitas alterações adicionais.
A saída quando nenhuma alteração foi feita é exibida da seguinte maneira:
{Added: 0, Removed: 0, Modified: 0}