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
반환
개체 집합은 세 개의 읽기 전용 컬렉션으로 반환됩니다.
예제
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에 할당합니다(에 대한 할당 때문일 Remove 수 DeleteOnSubmit있음).
외래 키 제약 조건에 따라 집합을 정렬할 수 없습니다.
데이터베이스에서 생성된 값(예: 기본 및 외래 키 값, 타임스탬프 등)은 사용할 수 없습니다. 이러한 정보에는 데이터베이스 명령 실행과 검색된 정보(예: 기본 키의 외래 키)가 전파되어야 합니다.
변경된 개체 집합은 호출 시 계산됩니다. 에 대한 SubmitChanges 후속 호출은 추가 변경이 이루어지면 다른 집합을 생성할 수 있습니다.
변경 내용이 없는 경우 출력은 다음과 같이 표시됩니다.
{Added: 0, Removed: 0, Modified: 0}
적용 대상
.NET