DataContext.GetChangeSet Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene los objetos modificados seguidos por 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
Devoluciones
El conjunto de objetos se devuelve como tres colecciones de solo lectura.
Ejemplos
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()
Comentarios
Tenga en cuenta las siguientes consideraciones:
GetChangeSet puede tener efectos secundarios, como la inferencia de operaciones de inserción y eliminación que normalmente se realizan en el momento de SubmitChanges. Por ejemplo, los objetos que se usan en las siguientes operaciones pueden crear las operaciones inferidas correspondientes en la lista siguiente:
De Add a InsertOnSubmit.
EntityRef<TEntity>asignación a null (posiblemente debido Remove a .DeleteOnSubmit
Es posible que el conjunto no se ordene según las restricciones de clave externa.
Los valores generados por la base de datos (por ejemplo, valores de clave principal y externa, marcas de tiempo, etc.) no están disponibles. Esta información requiere la ejecución del comando de base de datos y quizás la propagación de la información recuperada (por ejemplo, la clave externa de la clave principal).
El conjunto de objetos modificados se calcula en el momento de la llamada. Las llamadas posteriores a SubmitChanges pueden generar un conjunto diferente si se realizan cambios adicionales.
Salida cuando no se han realizado cambios aparece de la siguiente manera:
{Added: 0, Removed: 0, Modified: 0}