¿Es una buena práctica tener un objeto SqlConnection compartido en una aplicación .NET para todas sus conexiones a la base de datos o debería tener uno diferente cada vez que acceda a la base de datos?Shared SqlConnection
Actualmente tengo uno compartido y parece que se está encontrando con problemas de repente. Parece que no puedo usar uno compartido cuando necesito usar el modo de autenticación de SQL en lugar del modo de autenticación de Windows. Lo intenté por primera vez usando la autenticación SQL y me dio este error cuando intenté usar la misma conexión por segunda vez:
Ya hay un lector de datos abierto asociado con este comando que debe cerrarse primero.
Si dice "no use MARS", ¿tiene algún motivo específico? Por curiosidad ... –
http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx se analizan algunos de los aspectos negativos del uso de MARS – RichardOD
El modelo de aislamiento de transacciones de MARS está incompleto, como en no completamente definido teóricamente. El resultado es que el servidor puede "confundirse", como admite el enlace publicado por Richard. Lo que normalmente significa esa "confusión" es que el número de posibles interacciones es demasiado grande y no todas las rutas de código en el servidor se prueban y validan. –