Podczas zapisywania danych w bazie danych użyłem TransactionScope z IsolationLevel ustawionym na Serializable.Zmień parametr TransactionScope IsolationLevel po zakończeniu transakcji
TransactionOptions options = new TransactionOptions
{
IsolationLevel=IsolationLevel.Serializable
};
using (var transaction = new TransactionScope(TransactionScopeOption.Required,options))
{
transation.Complete();
}
Teraz po zakończeniu wykonywania, chcę zmienić TransactionScopeIsolationLevel.
Edit
Co rozumiem, jest to, czy IsolationLevel ustawiony Serializable następnie po zakończeniu transakcji, celem połączenia jest zamknięta i powrócić do puli połączeń, a gdy jakaś inna prośba dotrze on sprowadzić ten obiekt połączenia z puli, a tym samym dokonanej przez poprzednią opcję IsolationLevel. Dlatego po każdej transakcji chcę zmienić poziom izolacji na domyślny.
Dzięki za odpowiedź, jestem gotów zaakceptować inne lepsze opcje, ale jak sugerujesz, aby otworzyć wszystkie połączenia z jawnymi transakcjami, nie sądzisz, że spowoduje to wiele kosztów ogólnych. Mam ogromną aplikację setki punktów końcowych, ale istnieje tylko kilka scenariuszy, w których używam TransactionScope. Co sugerujesz do takich rzeczy? – MegaMind
Narzut transakcji jest prawie zerowy, ponieważ wszystkie instrukcje i tak korzystają z niejawnej transakcji .; Jeśli nie możesz migrować wszystkiego, Twoje podejście może być dobrym pomysłem. Hak, ale pragmatyczne rozwiązanie. Nie widzę żadnych większych problemów z tym. – usr
ma conn.ExecuteCommand ("USTAWIĆ POZIOM IZOLACJI TRANSAKCJI XXX"); praca? Czy ktoś próbował? – hazimdikenli