llblgen- 트랜잭션 스코프 또는 DataAccessAdapter.startTransaction
-
03-07-2019 - |
문제
LLBLGEN과의 거래 관리를위한 두 가지 주요 옵션이 있습니다.
방법 1 :
using(DataAccessAdapter adapter = new DataAccessAdapter())
{
adapter.StartTransaction(IsolationLevel.ReadCommitted, "TR");
try
{
// ...
adapter.Commit();
}
catch
{
adapter.Rollback();
throw;
}
}
방법 2 :
using(TransactionScope scope = new TransactionScope())
{
// ...
scope.Complete();
}
선호하는 방법은 무엇이며 그 이유는 무엇입니까? (Adapapter/2.6 .NET/3.5를 사용하고 있습니다)
해결책
DataAccessAdapter를 위해 설계된 트랜잭션 관리를 위해 TransactionScope를 사용하는 데 기대어있는 반면, 트랜잭션을 생성 할 수있는 능력은 주로 DataAccess를 위해 설계되었습니다.
조금 더 명확 해지려면 TransactionScope를 사용하여 여러 DataAccessAdapters에서 여러 트랜잭션을 관리하는 반면 단일 DataAccessAdapter에는 특정 범위가있는 것으로 보입니다.
예를 들어:
using(TransactionScope ts = new TransactionScope())
{
using(DataAccessAdapter d1 = new DataAccessAdapter())
{
//do some data access stuff
}
using(DataAccessAdapter d2 = new DataAccessAdapter())
{
//do some other data access stuff
}
ts.complete();
}
또 다른 참고 사항은 TransactionScope가 STREAD SAULY이며, 여기서 DataAdapter가 아닌 경우입니다.
제휴하지 않습니다 StackOverflow