PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

La transazione non può gestire comandi paralleli tramite Task.WhenAll

Non c'è niente di magico qui, ottieni l'errore perché la connessione che stai utilizzando quando inserisci CompanyAddress non è quella che pensi che sia.

È una nuova connessione. Quando viene eseguito l'inserimento di ComapnyPaymentInfo, stai utilizzando la connessione che è già collegata alla tua transazione. Sono in attesa di nuovi comandi perché hai atteso nel passaggio precedente.

L'uso di Task.WhenAll() d'altra parte proverà a utilizzare più thread. Se una connessione è occupata nell'esecuzione di un comando, non verrà utilizzata e ne verrà generata una nuova.

Ricorda che quando utilizzi Transazioni hai una sola connessione disponibile, non puoi beneficiare del parallelismo.