1
resposta

DbContext por Injeção de dependência precisa do bloco Using?

Quando utilizo dbContext por Injeção de dependência devo colocar o context dentro do bloco Using{} ou posso fazer a chamada direto como o exemplo abaixo. Penso em utilizar o Using{} para que seja chamado o método Dispose(), caso não utilize o Using o Dispose() é chamado implicitamente (automaticamente)?

  public class CustomerController: Controller
    {
        private readonly Context context;

        public CustomerController(Context context)
        {
            this.context = context;
        }

        [HttpGet]
        public IEnumerable<Customer> GetAll()
        {
            return context.Customer.ToList();
        }

ou

        [HttpGet]
        public IEnumerable<Customer> GetAll()
        {
            Using(?????????????????)
            {
                return context.Customer.ToList();
            }
        }
1 resposta

Bom dia, acredito que quando você utiliza Injeção de Dependencia ele utiliza um Singleton, sendo assim ele nao fecha o Contexto pois ele utiliza o mesmo para todas as consultas. Ou seja no meu ver você deve utilizar da primeira forma e deixar o se DI resolver isso. =)

  [HttpGet]
  public IEnumerable<Customer> GetAll()
  {
        return context.Customer.ToList();
  }