2010-02-01 3 views
0

ASP.NET linq SubmitChanges 메서드는 마지막으로 호출 된 이후의 모든 이전 데이터베이스 수정 내용에 대한 변경 내용을 커밋합니다. 나는 위의 라인에 Y가 아닌 X를 삽입 할SubmitChanges는 이전의 모든 변경 사항이 아닌 특정 변경 사항 만 제출하는 방법은 무엇입니까?

ClassX x = new Abc.Linq.ClassX(); 
DataContext.InsertOnSubmit(x); 

ClassY y = new Abc.Linq.ClassXY(); 
DataContext.InsertOnSubmit(y); 

DataContext.SubmitChanges();//x and y are committed to the database 

:

나는 내가 다음과 같은 일을 할 경우가 있습니다. 그런 다음 나중에 언젠가 SubmitChanges()에 대한 또 다른 호출로 X를 삽입하고 싶습니다. 표시된 순서대로 코드를 실행해야합니다.

그럴 수 있습니까? 또는 SubmitChanges() 이외의 다른 것을 호출해야합니까?

답변

4

이 경우 별도의 DataContext를 사용합니다. DataContext는 단순히 데이터 액세스를위한 래퍼이며 보류중인 변경 집합입니다. 변경 목록의 부분 커밋을 지원하지 않습니다. InsertOnSubmit은 그것이하는 말을합니다 - 실제로 제출하기 전에 전화해야하는 이유가 있습니까? 아마 당신이이 실행 명령에 당신을 고정시키려는 문제에 대해 정교한다면 더 나은 해결책을 제공 할 수 있습니다.

+0

+1이 특정 시나리오에서 별도의 DataContext입니다. – keyboardP

관련 문제