2009-08-15 70 views
27

Cuando instancia mi objeto "Entidades" en Entity Framework, y hago un par de consultas utilizando ese objeto Entities, ¿qué ocurre con las conexiones?¿Cuándo abre y cierra Entity Framework las conexiones a la base de datos?

  • ¿Se abre una conexión cuando instalo el objeto y lo cierro cuando me deshace de él?
  • ¿O abre y cierra una conexión para cada consulta que ejecuto?

En cualquier caso, ¿es posible cambiarlo para que haga lo otro?

+2

¡Wow @ pb2q que fue una edición muy importante de una pregunta de hace 6 años! ¡Bien hecho! –

+0

dMagiola: no hay problema. Feliz de ayudar con cualquier mejora: importante o no, viejo o nuevo. Sigue preguntando amigo! – pb2q

Respuesta

3

El comportamiento cambió algo en EF6, lo que le permite pasar en conexiones abiertas o abrir la conexión EF usted mismo más tarde. Check out https://msdn.microsoft.com/en-us/library/dn456849(v=vs.113).aspx

+0

Muchas gracias por el enlace: ¿no hay forma de declarar una conexión abierta a través de la cláusula 'using' de C#? p.ej. 'using (var conn = openAConnection())'. El enlace que comparte muestra una apertura manual de la conexión que se cierra cuando se elimina el contexto relacionado, que parece tan poco intuitivo y hacky. – aaaaaa

+0

@aaaaaa - ¿tal vez estás viendo el EF5 y el ejemplo anterior? En el segundo código, el ejemplo es la cláusula 'using' como desee. Tenga en cuenta que solo tiene que preocuparse por esto si realmente desea hacer algo manualmente con la conexión, p. para ejecutar declaraciones fuera de EF. Si no necesita eso, entonces no necesita pensar en abrir y cerrar la conexión. – Rory

+0

"Comportamiento en ES6 y versiones futuras": 'conn.Open();'. Esa es la línea que me molesta. Y sí, lo necesito aparentemente para obtener múltiples conjuntos de resultados de un procedimiento almacenado (tratando de mantener las solicitudes de DB a una por vista) – aaaaaa

Cuestiones relacionadas