Quiero que mi Data Access Layer se construya de forma muy modular.
Por lo tanto, tengo métodos de recuperación de datos que a veces se llaman directamente desde la capa empresarial y, a veces, se llaman por otros métodos de recuperación de datos para crear dependencias de objetos.La mejor manera de tratar con la conexión de base de datos en el DAL - crear o pasar?
¿Cuál es la mejor manera de tratar con las conexiones de bases de datos en el DAL?
a) Crear una nueva conexión en cada método y disponer después.
Bueno: Fácil de escribir y trabajar.
Malo: Se están abriendo y cerrando muchas conexiones. (Rendimiento?)
b) Pasar la conexión como argumento (opcional).
bueno: pude volver a utilizar una conexión abierta para múltiples comandos.
malo: que tienen que llevar un registro de la propiedad de la conexión (que tiene que cerrarlo?) Y no se puede utilizar la muy ordenada "mediante" declaraciones.
c) ¿Algo más? (¿Conexión como singleton quizás?)
Esta es la primera vez que estoy escribiendo un DAL real, así que realmente podría necesitar ayuda de gente experimentada.
EDITAR: Como parece importar, es un proyecto de sitio web ASP.Net.
Puede ser tangencial, pero FWIW, preferiría usar nhibernate y dejar que me ocupara de todo esto. es decir, simplemente trabaje con el objeto de sesión provisto por nhibernate. – Biswanath