Udostępnij za pośrednictwem


Obsługa transakcji

LINQ to SQL obsługuje trzy odrębne modele transakcji. Poniżej wymieniono te modele w kolejności przeprowadzania testów.

Jawna transakcja lokalna

Gdy SubmitChanges jest wywoływana, jeśli Transaction właściwość jest ustawiona na transakcję (IDbTransaction), SubmitChanges wywołanie jest wykonywane w kontekście tej samej transakcji.

Użytkownik ponosi odpowiedzialność za zatwierdzenie lub wycofanie transakcji po pomyślnym wykonaniu transakcji. Połączenie odpowiadające transakcji musi być zgodne z połączeniem używanym do konstruowania .DataContext Wyjątek jest zgłaszany, jeśli jest używane inne połączenie.

Jawna transakcja dystrybucyjna

Możesz wywołać interfejsy API LINQ to SQL (w tym, ale nie tylko SubmitChanges) w zakresie aktywnego Transactionelementu . LINQ to SQL wykrywa, że wywołanie znajduje się w zakresie transakcji i nie tworzy nowej transakcji. LinQ to SQL również unika zamykania połączenia w tym przypadku. Zapytania i SubmitChanges wykonania można wykonywać w kontekście takiej transakcji.

Transakcja niejawna

Podczas wywoływania SubmitChangesmetody funkcja LINQ to SQL sprawdza, czy wywołanie znajduje się w zakresie Transaction elementu , czy właściwość Transaction (IDbTransaction) jest ustawiona na transakcję lokalną uruchomioną przez użytkownika. Jeśli nie znajdzie żadnej transakcji, LINQ to SQL uruchamia transakcję lokalną (IDbTransaction) i używa jej do wykonywania wygenerowanych poleceń SQL. Po pomyślnym zakończeniu wszystkich poleceń SQL linQ to SQL zatwierdza transakcję lokalną i zwraca.

Zobacz też