sql >> Databáze >  >> NoSQL >> MongoDB

Vzor úložiště s MongoDB - více jednotek práce s jednou transakcí

Nikdy jsem MongoDB nepoužíval; nic o tom neví. Odpovídám pouze z hlediska TransactionScope; takže si nejsem jistý, jestli vám to pomůže.

Přečtěte si prosím Magic Of TransactionScope . IMO, existují tři faktory, které byste měli hledat:

  1. Připojení k databázi by mělo být otevřeno uvnitř the TransactionScope .

    Nejste si jisti, ale vypadá to, že se můžete zaregistrovat ručně připojení bylo otevřeno mimo rozsah pomocí connection.EnlistTransaction(Transaction.Current) .

    Při pohledu na váš komentář a úpravu to není problém.

  2. Všechny operace by měly běžet ve stejném vlákně.

    a

    Všechny operace by tedy měly běžet ve stejném vláknu.

  3. Hrajte s TransactionScopeOption (předejte jej konstruktoru TransactionScope ) hodnoty podle vašich potřeb.

    Nejsem si jistý, co váš kód očekává. S těmito hodnotami výčtu si můžete hrát.

Jak jste uvedl v komentáři, používáte async/await .

Pro MongoDB se podívejte, zda toto vám pomůže.



  1. Načtěte data Spark do Mongo / Memcached pro použití webovou službou

  2. Jak se to vybere v MongoDB

  3. problém s otevřeným připojením mongodb

  4. ClusterControl – všechny hlavní funkce a vylepšení od roku 2017