3

는 아래에 주어진 : 데이터베이스의SaveChanges를()는 내가 <code>SaveChanges()</code> 방법을 사용하고 4.1

objAdbContextA 데이터베이스의

objBdbContextB

DB (A)의 업데이트 테이블로 아래에 주어진

public string SaveA() 
{ 

//Some stuff 

    objAdbContext.SaveChanges(); 

    string result=UpdateDatabaseB(some parameters) 

    //Some stuff 

} 


public string UpdateDatabaseB(some parameters) 

{ 

    //Some stuff 

    objBdbContext.SaveChanges(); 

    return "Success"; 

} 

이 경우 데이터베이스 B는 다음과 같습니다. 업데이트되지 않습니다. 여러 데이터베이스를 업데이트하는 올바른 방법입니까?

둘 다 독립 데이터베이스이고이 경우 TransactionScope를 구현하는 방법은 무엇입니까?

+0

좋은 포맷이 당신의 친구입니다. –

답변

6

이 시도 :

using (TransactionScope scope = new TransactionScope()) 
{ 
    // Save changes but maintain context1 current state. 
    context1.SaveChanges(SaveOptions.DetectChangesBeforeSave); 

    // Save changes but maintain context2 current state. 
    context2.SaveChanges(SaveOptions.DetectChangesBeforeSave); 

    // Commit succeeded since we got here, then completes the transaction. 
    scope.Complete(); 

    // Now it is safe to update context state. 
    context1.AcceptAllChanges(); 
    context2.AcceptAllChanges(); 
} 

이 샘플이 블로그 게시물에서 찍은 :

Managing Transactions with Entity Framework 4

+4

SaveChanges (withParameter)가 DbContext에 존재하지 않는다고 생각합니다. ObjectContext 만 다른 클래스입니다. – Kelmen

관련 문제