DataContext.GetChangeSet Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá upravené objekty sledované 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
Návraty
Sada objektů se vrátí jako tři kolekce jen pro čtení.
Příklady
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()
Poznámky
Všimněte si následujících aspektů:
GetChangeSet může mít vedlejší účinky, například odvozování operací vložení a odstranění, které se obvykle provádějí v době SubmitChanges. Například objekty, které se používají v následujících operacích, mohou vytvořit odpovídající odvozené operace v následujícím seznamu:
Add na InsertOnSubmit.
EntityRef<TEntity> přiřazení k hodnotě null (pravděpodobně kvůli RemoveDeleteOnSubmit.
Sada nemusí být seřazena podle omezení cizího klíče.
Hodnoty generované databází (například hodnoty primárního a cizího klíče, časová razítka atd.) nejsou k dispozici. Tyto informace vyžadují spuštění databázového příkazu a možná šíření načtených informací (například cizí klíč z primárního klíče).
Sada změněných objektů se vypočítá v době volání. Následná volání, která SubmitChanges můžou vytvořit jinou sadu, pokud dojde k dalším změnám.
Výstup v případě, že nebyly provedeny žádné změny, se zobrazí takto:
{Added: 0, Removed: 0, Modified: 0}