DataContext.GetChangeSet Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient les objets modifiés suivis par le 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
Retours
L'ensemble des objets est retourné sous la forme de trois collections en lecture seule.
Exemples
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()
Remarques
Tenez compte des points suivants :
GetChangeSet peut avoir des effets secondaires, tels que l’inférence des opérations d’insertion et de suppression qui sont généralement effectuées au moment de SubmitChanges. Par exemple, les objets utilisés dans les opérations suivantes peuvent créer des opérations déduites correspondantes dans la liste suivante :
Add en InsertOnSubmit.
EntityRef<TEntity> affectation à null (possiblement en raison de Remove à DeleteOnSubmit.
L’ensemble peut ne pas être classé en fonction des contraintes de clé étrangère.
Les valeurs générées par la base de données (par exemple, les valeurs de clé primaire et étrangère, les horodatages, etc.) ne sont pas disponibles. Ces informations nécessitent l’exécution de commandes de base de données et peut-être la propagation des informations récupérées (par exemple, la clé étrangère à partir de la clé primaire).
L’ensemble d’objets modifiés est calculé au moment de l’appel. Les appels suivants à SubmitChanges peuvent produire un autre ensemble si des modifications supplémentaires sont apportées.
La sortie lorsqu’aucune modification n’a été apportée s’affiche comme suit :
{Added: 0, Removed: 0, Modified: 0}