2010-02-12 5 views
1

지금 테스트 할 방법이 없으므로 제목에 대한 질문을 나에게 확인할 수 있습니까?Active Directory commitChanges 메서드는 DataBase Commit 트랜잭션과 동일하게 작동합니까?

즉, ADO.NET 데이터베이스 트랜잭션에서 데이터베이스에 커밋하기 전에 수천 개의 레코드를 업데이트/삽입 할 수 있습니다. Active Directory에서 System.Directory.Services를 사용하면 업데이트/삽입하는 모든 항목 (또는 레코드)을 커밋해야합니다.

감사합니다.

답변

1

Active Directory는 트랜잭션 저장소가 아니므로 데이터베이스처럼 트랜잭션 지원을받을 수 없습니다.

귀하의 관찰은 절대적으로 정확합니다. Active Directory를 사용하면 개체 단위로 처리합니다. 오브젝트를 검색하고 조작 한 다음 모든 변경 사항을 다시 저장 (또는 파기) 할 수 있지만 일련의 전체 조작을 롤백 할 트랜잭션 지원은 없습니다.

정말로이 기능이 필요한 경우 AD 용 사용자 고유의 Resource Manager를 작성해야합니다 (일부 아이디어 here in MSDN 참조). 이렇게하면 TransactionScope()에 AD 작업을 래핑하고 다시 롤백 할 수 있습니다. 나는 이것이 사소한 일이라고 생각하지 않는다. 그렇지 않으면 누군가가 이미 그것을했을 것이다. ...

현재의 관측치는 절대적으로 정확하며, 많은 노력을 기울이지 않아도 안타깝게도 변경 될 수 없다.