2009-05-15 3 views
0

linq 제출 변경 호출 바로 전에 변경 내용을 가져 오려면 코드를 실행하고 있습니다.GetChangeSet ChangeSet, Linq 변경 내용을 적용 할 순서는 무엇입니까?

private void OnSubmitHandleReplication() 
{ 
    System.Data.Linq.ChangeSet changes = GetChangeSet(); 
    //Do something with change set 
} 
나는에 제출 된 어떤 순서로 가지 알아야 할 무언가 섹션에서

, 어떤 순서가있는 데이터베이스에 게시 할 예정입니다. 내가 변경 세트가 .Inserted, .Updated 및 .Deleted을 가지고 참조 . 나는 이것이 그들이 적용될 순서대로 있다고 가정한다. 그러나 나는 모든 질서를 알고 싶어한다. 삽입, 업데이트, 3 개의 삽입 또는이 컬렉션간에 앞뒤로 바운스하는 내용이 있다고 가정합니다.

업데이트 1

죄송합니다, 제목이

업데이트 2

이유 나는이 다른 DB에 이러한 이상을 재생하는 것입니다 뭐하는 거지에게 SQL로, Linq에 분명했다 생각했다.

+0

Linq to SQL 또는 Entity 프레임 워크? SQL에 linq처럼 보이지만 확실하지 않습니다 –

답변

0

이것은 매우 까다 롭습니다.

실제 주문을 받으려면 리플렉션을 사용하여 변경 추적기를 아주 멀리 파고 들어야합니다.

삽입 순서, 업데이트 순서, 삭제 순서는 삭제하기 전에 발생하므로 고유 한 제약 조건을주의해야합니다 (다시 작성하지 말고 업데이트해야 함).

편집

그냥 '재생'에 필요한 경우는, 반드시 당신은 로깅 기능을 사용할 수 있습니다.

+0

로깅 기능을 확장 할 수 있습니까? –

0

YourDataContext.Log = Console.Out 또는 기타 호환되는 출력 스트림을 설정하여 Linq2SQL에서 로깅을 사용할 수 있습니다. LINQ가 데이터베이스에 보내는 모든 SQL 쿼리가 거기에 인쇄됩니다. LINQ가 많은 쿼리를 보내므로 문제를 디버깅하는 데에만 사용해야합니다.

편집 : 작업 순서와 관련하여 더 이상 도움을 줄 수 없으며 이러한 쿼리를 내가 본 것보다 더 많이 보지 않았습니다. 에.

관련 문제