Share via


방법: 변경 집합 표시(LINQ to SQL)

업데이트: November 2007

GetChangeSet을 사용하여 DataContext에 의해 추적된 변경 내용을 볼 수 있습니다.

예제

다음 예제에서는 도시가 London인 고객을 검색하여 도시를 Paris로 변경한 다음 변경 내용을 다시 데이터베이스로 전송합니다.

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()
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();

이 코드는 다음과 유사하게 출력됩니다. 맨 끝에 8개가 변경되었음을 요약하여 보여 줍니다.

CustomerID: AROUT

    Original value: London

    Updated value: Paris

CustomerID: BSBEV

    Original value: London

    Updated value: Paris

CustomerID: CONSH

    Original value: London

    Updated value: Paris

CustomerID: EASTC

    Original value: London

    Updated value: Paris

CustomerID: NORTS

    Original value: London

    Updated value: Paris

CustomerID: PARIS

    Original value: London

    Updated value: Paris

CustomerID: SEVES

    Original value: London

    Updated value: Paris

CustomerID: SPECD

    Original value: London

    Updated value: Paris

 

Total changes: {Added: 0, Removed: 0, Modified: 8}

참고 항목

기타 리소스

디버깅 지원(LINQ to SQL)