none
¿Diferencia al usar using al conectar con DB? RRS feed

  • Pregunta

  • Hola ... 

    Quisiera saber cual de estos dos metodos es mejor utilizar y por que ? (obviamente hacen lo mismo y funcionan bien)

    Mi clase :

       public class ParametrosInformeRepository :IParametrosInformeRepository
        {
            private readonly CRMv2_ContaEntities db;
    
            public ParametrosInformeRepository (CRMv2_ContaEntities _db)
            {
                db = _db;
            }
        }
    }

    1er metodo

       public List<A_Conta_Parametros_Informe>  GetParametrosInforme()
            {
                List<A_Conta_Parametros_Informe> modelo = null;
                using(db)
                {
                    modelo = db.A_Conta_Parametros_Informe.ToList();
                }
                return modelo;
            }
    2do metodo
       public List<A_Conta_Parametros_Informe>  GetParametrosInforme()
            {
                List<A_Conta_Parametros_Informe> modelo = null;
                modelo = db.A_Conta_Parametros_Informe.ToList();
    
                return modelo;
            }




    EFRAIN MEJIAS C VALENCIA - VENEZUELA

    martes, 1 de septiembre de 2020 19:39

Respuestas

  • Normalmente, en un programa cualquiera, deberías emplear el "using" para garantizar que se cierre la conexión.

    Pero: En el ejemplo concreto que has puesto, se trata de un repositorio que recibe la conexión por inyección a través del constructor. En este caso, la infraestructura sobre la que construyes ese repositorio es la que gestiona la conexión, por lo que no deberías emplear el using. Ya se encarga la infraestructura de llamar al Dispose cuando termina de ejecutar esa clase (o se debería encargar, si está bien hecha).

    miércoles, 2 de septiembre de 2020 6:13
    Moderador

Todas las respuestas

  • Hola Efrain Mejias Castillo, 

      

    Gracias por levantar tu consulta en los foros de MSDN. Entendimos su pregunta y vamos a darle seguimiento para buscar la mejor repuesta pertinente al caso.  

    Gracias por usar los foros de MSDN.   

     

     Andres Aguilar

     ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    miércoles, 2 de septiembre de 2020 0:59
    Moderador
  • Hola Efrain Mejias Castillo:

    La respuesta, es porque using se encarga de llamar a cerrar y liberar los recursos asociados a la conexión, aun cuando haya ocurrido un error.

    https://www.c-sharpcorner.com/UploadFile/manas1/usage-and-importance-of-using-in-C-Sharp472/

    https://stackoverflow.com/questions/17944837/ef-entity-framework-usage-of-using-statement

    miércoles, 2 de septiembre de 2020 4:09
  • Normalmente, en un programa cualquiera, deberías emplear el "using" para garantizar que se cierre la conexión.

    Pero: En el ejemplo concreto que has puesto, se trata de un repositorio que recibe la conexión por inyección a través del constructor. En este caso, la infraestructura sobre la que construyes ese repositorio es la que gestiona la conexión, por lo que no deberías emplear el using. Ya se encarga la infraestructura de llamar al Dispose cuando termina de ejecutar esa clase (o se debería encargar, si está bien hecha).

    miércoles, 2 de septiembre de 2020 6:13
    Moderador