no estoy usando LINQ a SQL o trozos de Entity Framework en una aplicación web, y actualmente han estado usando algo como esto (esto es para un proyecto de clase):¿Cómo se debe mantener una conexión de base de datos en una aplicación ASP.NET MVC?
using System.Data;
using System.Data.SqlClient;
namespace StackOverflowClone.Models
{
public class Database
{
public static SqlConnection ActiveConnection { get; private set; }
static Database()
{
ActiveConnection = new SqlConnection(
"Data Source=********.database.windows.net;" +
"Initial Catalog=EECS341;Uid=*****;Pwd=*******;" +
"MultipleActiveResultSets=True;");
ActiveConnection.Open();
}
}
}
Sin embargo, esto parece ser la causa problemas de enhebrado porque el inicializador estático se ejecuta una vez por proceso de servidor, en lugar de una vez por solicitud.
¿El marco proporciona un sistema incorporado en el método de manipulación de este o debo tener una función que tose conexiones de base new'd arriba cada vez?
@TomasVoracek: El problema es que puede haber más de un usuario atendido a la vez, y la conexión ocasionalmente se confunde y falla una consulta porque un hilo diferente aún está leyendo los resultados de una consulta previa. –