Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Periodica InvalidCastException e Il server non è riuscito a riprendere la transazione con Linq

Questo probabilmente non è un problema con il tuo codice. È un bug di SQL Server. Hanno avuto un problema simile in SQL Server 2005. È successo solo in condizioni giuste, quindi pochissime persone l'hanno visto e quelli che lo hanno fatto erano molto confusi.

Detto questo, ecco alcune cose da controllare che hanno funzionato per altri con lo stesso problema:

  • Cerca lettori di dati che non siano chiusi. Assicurati di eseguiremyReader.Close() dopo aver letto le righe desiderate. Molte persone semplicemente ballano senza chiudere.
  • Utilizza la classe nativa SqlTransaction invece di OleDbTransactions ovunque possibile.
  • Guarda le tue transazioni. Assicurati di eseguire il commit/rollback in modo pulito prima di chiudere la connessione.
  • Utilizza Connection.BeginTransation anziché Connection.BeginDbTransaction