DataContext.GetChangeSet メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
戻り値
オブジェクトのセットが、3 つの読み取り専用のコレクションとして返されます。
例
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で通常実行される挿入操作や削除操作の推論など、副作用が発生する可能性があります。 たとえば、次の操作で使用されるオブジェクトは、次の一覧に対応する推論操作を作成できます。
Add から InsertOnSubmit。
EntityRef<TEntity>null への割り当て (場合によっては、 に対する DeleteOnSubmitが原因Removeである可能性があります)。
外部キー制約に従ってセットを順序付けすることはできません。
データベースで生成された値 (主キーや外部キーの値、タイムスタンプなど) は使用できません。 このような情報には、データベース コマンドの実行と、取得した情報 (主キーからの外部キーなど) の伝達が必要な場合があります。
変更されたオブジェクトのセットは、呼び出し時に計算されます。 以降の の SubmitChanges 呼び出しでは、追加の変更が行われた場合に別のセットが生成される可能性があります。
変更が行われなかった場合の出力は、次のように表示されます。
{Added: 0, Removed: 0, Modified: 0}
適用対象
.NET