MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Wzorzec repozytorium z MongoDB - wiele jednostek pracy z jedną transakcją

Nigdy nie korzystałem z MongoDB; nic o tym nie wiem. Odpowiadam tylko w zakresie TransactionScope; więc nie jestem pewien, czy to ci pomoże.

Zapoznaj się z Magia TransactionScope . IMO, są trzy czynniki, na które powinieneś zwrócić uwagę:

  1. Połączenie z bazą danych powinno być otwarte wewnątrz TransactionScope .

    Nie jestem pewien, ale wygląda na to, że możesz ręcznie zarejestrować połączenie otwarte poza zakresem przy użyciu connection.EnlistTransaction(Transaction.Current) .

    Patrząc na Twój komentarz i edycję, to nie jest problem.

  2. Wszystkie operacje powinny działać w tym samym wątku.

    i

    Tak więc wszystkie operacje powinny działać w tym samym wątku.

  3. Graj z TransactionScopeOption (przekaż go do konstruktora TransactionScope ) wartości zgodnie z potrzebami.

    Nie jestem pewien, czego oczekiwał twój kod. Możesz grać z tymi wartościami wyliczenia.

Jak wspomniałeś w komentarzu, używasz async/await .

W przypadku MongoDB sprawdź, czy to pomaga.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. BadValue Nieprawidłowa lub nie ustawiono ustawień regionalnych użytkownika. Upewnij się, że zmienne środowiskowe LANG i/lub LC_* są ustawione poprawnie

  2. Baza danych MongoDB usunięta automatycznie

  3. Jak grupować według wielu kolumn i wielu wartości w mongodb

  4. Indeksowanie tablic równoległych w Mongodb

  5. Dlaczego łącznik Mongo Spark zwraca różne i nieprawidłowe liczby dla zapytania?