//Realizar a gestao da conexao é muito melhor que deixar na mão do ef. static void GerenciarEstadoDaConexao(bool gerenciarEstado) { using var db = new Curso.Data.ApplicatioContextCidade(); var time = System.Diagnostics.Stopwatch.StartNew(); var conexao = db.Database.GetDbConnection(); conexao.StateChange += (_, __) => ++ _count; if (gerenciarEstado) { conexao.Open(); } for (var i = 0; i < 400; i++) { db.Cidades.AsNoTracking().Any(); } time.Stop(); var mensagem = $"Tempo: {time.Elapsed.ToString()}, {gerenciarEstado}, Numero Conexões abertas:{_count}"; Console.WriteLine(mensagem); }
//Resolve o problema de se usa mais de um contexto e força a criação da base static void GapDoEnsureCreatedComMultiplosContextos() { using var db1 = new Curso.Data.ApplicationContext(); using var db2 = new Curso.Data.ApplicatioContextCidade(); var databaseCreator = db2.GetService <IRelationalDatabaseCreator>(); databaseCreator.CreateTables(); }