Example #1
0
        static void Main(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=DESKTOP-E9PE89C;userid='leo';password=123;database=SwitchDB;", m => m.MigrationsAssembly("Switch.Infra.Data").MaxBatchSize(1000));
            optionsBuilder.EnableSensitiveDataLogging();

            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());

                    var usuarioNovoLeo = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "usuarioNovoLeo");

                    var instuicaoEnsino = new InstituicaoEnsino()
                    {
                        Nome = "Faculdate Bilogia"
                    };

                    usuarioNovoLeo.InstituicoesEnsino.Add(instuicaoEnsino);

                    dbcontext.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Erro: " + ex.Message);
                Console.ReadKey();
            }

            //Console.WriteLine("Ok!");
            Console.ReadKey();
        }
Example #2
0
        static void Main(string[] args)
        {
            var usuario = new Usuario()
            {
                Nome           = "Paulo",
                SobreNome      = "Feitor",
                Senha          = "123",
                Email          = "*****@*****.**",
                DataNascimento = DateTime.Now,
                Sexo           = Switch.Domain.Enums.SexoEnum.Masculino,
                UrlFoto        = @"c:\temp"
            };

            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=localhost;userid=root;password=mysql;database=SwitchDB;", m => m.MigrationsAssembly("Switch.Infra.Data").MaxBatchSize(1000));


            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());
                    dbcontext.Usuarios.Add(usuario);
                    dbcontext.SaveChanges();
                }
            }catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadKey();
            }
            Console.WriteLine("OK!");
            Console.ReadKey();
        }
Example #3
0
        static void Main(string[] args)
        {
            Usuario usuario = NovoUsuario("3");

            var optionBuilder = new DbContextOptionsBuilder <SwitchContext>().EnableSensitiveDataLogging();

            optionBuilder.UseLazyLoadingProxies();
            optionBuilder
            .UseMySql("Server=localhost;userid=root;Database=SwitchDB", m => m.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var contexto = new SwitchContext(optionBuilder.Options))
                {
                    contexto.GetService <ILoggerFactory>().AddProvider(new Logger());

                    var resultado = contexto.Usuarios.ToList();


                    //Console.WriteLine("Usuário add com sucesso!");
                    Console.ReadKey();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.ReadKey();
            }
        }
Example #4
0
        static void Main(string[] args)
        {
            Usuario usuario1;
            Usuario usuario2;
            Usuario usuario3;
            Usuario usuario4;
            Usuario usuario5;
            Usuario usuario6;

            Usuario CriarUsuario(string nome)
            {
                return(new Usuario()
                {
                    Nome = "Usuario1",
                    SobreNome = "SobreNomeUsuario1",
                    Senha = "123456",
                    Email = "*****@*****.**",
                    DataNascimento = DateTime.Now,
                    Sexo = Switch.Domain.Enums.SexoEnum.Masculino,
                    UrlFoto = @"C:\temp"
                });
            }

            usuario1 = CriarUsuario("usuario1");
            usuario2 = CriarUsuario("usuario2");
            usuario3 = CriarUsuario("usuario3");
            usuario4 = CriarUsuario("usuario4");
            usuario5 = CriarUsuario("usuario5");
            usuario6 = CriarUsuario("usuario6");

            List <Usuario> usuarios = new List <Usuario>()
            {
                usuario1, usuario2, usuario3, usuario4, usuario5, usuario6
            };

            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=localhost;userid=root;password=NsaentndbtdM2019**;database=SwitchDB;", m => m.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());
                    dbcontext.Usuarios.AddRange(usuarios);
                    dbcontext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.ReadKey();
            }

            Console.WriteLine("Salvo com sucesso!");
            Console.ReadKey();
        }
Example #5
0
        static void SetUser()
        {
            Usuario usuario1;
            Usuario usuario2;
            Usuario usuario3;
            Usuario usuario4;
            Usuario usuario5;
            Usuario usuario6;

            Usuario CriarUsuario(string nome)
            {
                return(new Usuario()
                {
                    Nome = "Usuario 1",
                    SobreNome = "SobreNomeUsuario",
                    Email = "*****@*****.**",
                    Senha = "123",
                    Sexo = Switch.Domain.Enums.SexoEnum.Masculino,
                    DataNascimento = DateTime.Now,
                    UrlFoto = "teste"
                });
            }

            usuario1 = CriarUsuario("usuario1");
            usuario2 = CriarUsuario("usuario2");
            usuario3 = CriarUsuario("usuario3");
            usuario4 = CriarUsuario("usuario4");
            usuario5 = CriarUsuario("usuario5");
            usuario6 = CriarUsuario("usuario6");

            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseSqlServer(conn, m => m.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    // carrega o logger da transação solicitada
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());

                    dbcontext.Usuarios.AddRange(usuario1, usuario2, usuario3, usuario4);
                    ////dbcontext.Usuarios.Add(usuario1);
                    dbcontext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.WriteLine("Ok!");
        }
Example #6
0
        static void Main(string[] args)
        {
            Usuario usuario1;
            Usuario usuario2;
            Usuario usuario3;
            Usuario usuario4;
            Usuario usuario5;
            Usuario usuario6;

            Usuario CriaUsuario(string Nome)
            {
                return(new Usuario()
                {
                    Nome = Nome,
                    SobreNome = "Usuario",
                    Email = "*****@*****.**",
                    Senha = "Senha",
                    Sexo = SexoEnum.Maculino,
                    DataNascimento = DateTime.Parse("17/10/1986"),
                    UrlFoto = "saass"
                });
            }

            usuario1 = CriaUsuario("usuario1");
            usuario2 = CriaUsuario("usuario2");
            usuario3 = CriaUsuario("usuario3");
            usuario4 = CriaUsuario("usuario4");
            usuario5 = CriaUsuario("usuario5");
            usuario6 = CriaUsuario("usuario6");

            var optionsBulder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBulder.UseLazyLoadingProxies();
            optionsBulder.EnableSensitiveDataLogging();
            optionsBulder.UseNpgsql("Server=localhost; userid=postgres; password=discovoador;database=SwitchDB;", m => m.MigrationsAssembly("Switch.Infra.Data").MaxBatchSize(1000)
                                    );

            try
            {
                using (var dbcontext = new SwitchContext(optionsBulder.Options))
                {
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());
                }
            }
            catch (Exception erro)
            {
                Console.WriteLine(erro.Message);
                Console.ReadKey();
            }
        }
Example #7
0
        static void Main(string[] args)
        {
            var usuario = new Usuario()
            {
                Nome           = "Ronaldo",
                SobreNome      = "Souza",
                Email          = "*****@*****.**",
                DataNascimento = DateTime.Now,
                Sexo           = Switch.Domain.Enums.SexoEnum.Masculino,
                Senha          = "vacaloca171"
            };

            //var localTrabalho = new LocalTrabalho()
            //{
            //    Nome = "SKY",
            //    DataAdmissao = DateTime.Now.AddYears(3),
            //    EmpresaAtual = true,
            //    UsuarioId=1

            //};

            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=localhost;userid=root;password=vacaloca171;database=SwitchDB",
                                    a => a.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var dbcontexto = new SwitchContext(optionsBuilder.Options))
                {
                    //log
                    dbcontexto.GetService <ILoggerFactory>().AddProvider(new Logger());
                    dbcontexto.Usuarios.Where(o => o.Nome == "bira").ToList();

                    dbcontexto.Usuarios.Add(usuario);
                    dbcontexto.SaveChanges();
                }
            }

            catch (Exception ex)
            {
                string erro = ex.Message;
            }

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            List <Usuario> listaUsuario = new List <Usuario>();

            Usuario CriarUsuario(string nome)
            {
                return(new Usuario()
                {
                    Nome = "Usuario3",
                    SobreNome = "SobreUsuario",
                    Senha = "1234",
                    Email = "*****@*****.**",
                    DataNascimento = DateTime.Now,
                    Sexo = SexoEnum.Masculino,
                    UrlFoto = "asdasdghasgdjhasgd"
                });
            }

            for (int i = 1; i <= 10; i++)
            {
                listaUsuario.Add(CriarUsuario($"Usuario{i}"));
            }

            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=localhost;userid=root;password=1234;database=SwitchDB",
                                    m => m.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var db = new SwitchContext(optionsBuilder.Options))
                {
                    db.GetService <ILoggerFactory>().AddProvider(new Logger());
                    db.Usuarios.AddRange(listaUsuario);
                    db.SaveChanges();
                }
                Console.WriteLine("OK");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Erro", ex.Message);
            }

            Console.ReadKey();
        }
Example #9
0
        static void Linq()
        {
            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseSqlServer(conn, m => m.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    // carrega o logger da transação solicitada
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());

                    //var user = dbcontext.Usuarios.ToList();

                    var user = dbcontext.Usuarios.Where(u => u.Nome == "Usuario 1");

                    //var usuarios = (from u in dbcontext.Usuarios
                    //                select u).ToList();

                    //var user1 = (from u in dbcontext.Usuarios
                    //             where u.Nome == "Usuario 1"
                    //             select u).ToList();

                    // first = primeiro item de uma relação
                    // ideais para quando existe dados duplicados no banco, ai vc traz o primeiro

                    // firstordefault = me devolve o primeiro elemento na base ou me retorna nulo

                    // single = procura se existe uma unica ocorrencia do parâmetro informado
                    // pode disparar um erro se encontrar registros duplicados

                    // last = é o oposto do first... pode ter impacto na performance

                    // find = pesquina na base caso saiba o Id
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Example #10
0
        static void Pk()
        {
            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseSqlServer(conn, m => m.MigrationsAssembly("Switch.Infra.Data"));

            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    // carrega o logger da transação solicitada
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());

                    //var user = CriarUsuario("userFilipe");
                    //Console.WriteLine($"Id do novo usuario = {user.Id}");
                    //Console.ReadKey();

                    //dbcontext.Usuarios.Add(user);
                    //Console.WriteLine($"Id do novo usuario = {user.Id}");
                    //Console.ReadKey();

                    //dbcontext.SaveChanges();
                    //Console.WriteLine($"Id do novo usuario = {user.Id}");
                    //Console.ReadKey();

                    var user = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "userFilipe");
                    user.Senha = "abc123";

                    // realiza o update em todas as tabelas da entidade
                    dbcontext.Update <Usuario>(user);

                    dbcontext.SaveChanges();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Example #11
0
        static void Main(string[] args)
        {
            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=localhost; port=3306; database=SwitchDB; uid=root; password=1234567@", m => m.MigrationsAssembly("Switch.Infra.Data").MaxBatchSize(1000));


            Usuario usuario1;
            Usuario usuario2;
            Usuario usuario3;
            Usuario usuario4;
            Usuario usuario5;
            Usuario usuario6;


            usuario1 = CriarUsuario("usuario1");
            usuario2 = CriarUsuario("usuario2");
            usuario3 = CriarUsuario("usuario3");
            usuario4 = CriarUsuario("usuario4");
            usuario5 = CriarUsuario("usuario5");
            usuario6 = CriarUsuario("usuario6");

            List <Usuario> usuarios = new List <Usuario>()
            {
                usuario1, usuario2, usuario3, usuario4, usuario5, usuario6
            };


            Usuario CriarUsuario(string nome)
            {
                return(new Usuario()
                {
                    Nome = "Paty",
                    Sobrenome = "Nunes",
                    Senha = "12345678@",
                    Email = "*****@*****.**",
                    DataNascimento = DateTime.Now,
                    Sexo = Switch.Domain.Enums.SexoEnum.Masculino,
                    UrlFoto = @"/c:"
                });
            }

            try
            {
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());
                    dbcontext.Usuarios.AddRange(usuarios);
                    //dbcontext.Usuarios.Add(usuario1);
                    //dbcontext.Usuarios.Add(usuario2);
                    //dbcontext.Usuarios.Add(usuario3);
                    //dbcontext.Usuarios.Add(usuario4);
                    //dbcontext.Usuarios.Add(usuario5);
                    //dbcontext.Usuarios.Add(usuario6);
                    //dbcontext.Usuarios.AddRange(usuario1, usuario2, usuario3, usuario4);

                    dbcontext.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadKey();
            }

            Console.WriteLine("OK!");
            Console.ReadKey();
        }
Example #12
0
        static void Main(string[] args)
        {
            //Console.WriteLine("Hello World!");

            Usuario usuario1;
            Usuario usuario2;
            Usuario usuario3;
            Usuario usuario4;
            Usuario usuario5;
            Usuario usuario6;


            usuario1 = CriarUsuario("usuario 1");
            usuario2 = CriarUsuario("usuario 2");
            usuario3 = CriarUsuario("usuario 3");
            usuario4 = CriarUsuario("usuario 4");
            usuario5 = CriarUsuario("usuario 5");
            usuario6 = CriarUsuario("usuario 6");

            //exemplo usando lista
            List <Usuario> listaUsuarios = new List <Usuario>()
            {
                usuario1, usuario2, usuario3, usuario4, usuario5, usuario6
            };


            var optionsBuilder = new DbContextOptionsBuilder <SwitchContext>();

            optionsBuilder.UseLazyLoadingProxies();
            optionsBuilder.UseMySql("Server=localhost;userid=root;password=;database=SwitchDB",
                                    m => m.MigrationsAssembly("Switch.Infra.Data").MaxBatchSize(100));

            try
            {
                //using descarta da memoria, desde que a classe em uso implemente a interface IDispose
                using (var dbcontext = new SwitchContext(optionsBuilder.Options))
                {
                    dbcontext.GetService <ILoggerFactory>().AddProvider(new Logger());

                    //executa em batch, somente acima de 3 registros
                    //o EF em uma unica transação adiciona na base de dados

                    //Forma simples
                    //dbcontext.Usuarios.Add(usuario1);
                    //dbcontext.Usuarios.Add(usuario2);
                    //dbcontext.Usuarios.Add(usuario3);
                    //dbcontext.Usuarios.Add(usuario4);
                    //dbcontext.Usuarios.Add(usuario5);
                    //dbcontext.Usuarios.Add(usuario6);

                    //de outra forma, usando uma lista de objetos
                    //dbcontext.Usuarios.AddRange(listaUsuarios);

                    //salva todas as alterações na base de dados
                    //dbcontext.SaveChanges();

                    //consultas a base de dados
                    //exemplos
                    ////carrega tudo o que tem na base
                    //var resultado = dbcontext.Usuarios.ToList();

                    ////filtro por nome
                    //var resultado2 = dbcontext.Usuarios.Where(u => u.Nome == "usuario1");

                    ////evitar usar assim, isso traz impacto na performance
                    //foreach(var us in resultado2)//abre conexao
                    //{

                    //    //aqui poderia ter alguns metodos simples

                    //}//fecha conexao


                    ////filtro por nome
                    //var resultado3 = dbcontext.Usuarios.Where(u => u.Nome == "usuario1").ToList();

                    ////para abrir e fechar conexão, chamar o método ToList()
                    ////para que armaze o resultado da consulta na memória
                    ///

                    //var usuarioNovo = CriarUsuario("usuarioNovo1");
                    //dbcontext.Usuarios.Add(usuarioNovo);
                    //dbcontext.SaveChanges();

                    //var usuarioRetorno = dbcontext.Usuarios.Where(u => u.Nome == "usuarioNovo1").ToList();


                    //var usuario123 = CriarUsuario("usuario123");
                    //var usuario124 = CriarUsuario("usuario123");

                    //dbcontext.Usuarios.Add(usuario123);
                    //dbcontext.Usuarios.Add(usuario124);
                    //dbcontext.SaveChanges();

                    // var totalUser = dbcontext.Usuarios.Count(u => u.Nome == "usuario123");

                    //REMOVENDO DA BASE DE DADOS

                    //exemplo 1, usa o cache
                    //var usuario = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "usuario123");
                    //dbcontext.Usuarios.Remove(usuario);
                    //dbcontext.SaveChanges();

                    //exemplo 2, remove diretamente na base
                    //var usuario = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "usuario123");
                    //dbcontext.Remove<Usuario>(usuario);
                    //dbcontext.SaveChanges();

                    //totalUser = dbcontext.Usuarios.Count(u => u.Nome == "usuario123");


                    ///ATUALIZANDO DADOS
                    //var userWillian = CriarUsuario("userWillian");
                    //Console.WriteLine("Id do userWillian = " + userWillian.Id);
                    //Console.ReadKey();

                    //dbcontext.Usuarios.Add(userWillian);
                    //Console.WriteLine("Id do userWillian = " + userWillian.Id);
                    //Console.ReadKey();

                    //dbcontext.SaveChanges();
                    //Console.WriteLine("Id do userWillian = " + userWillian.Id);
                    //Console.ReadKey();

                    // var userWillian = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "userWillian");
                    // userWillian.Senha = "1234567321";
                    //exemplo2 atualiza todos os campos da tabela, pode ser menos performatico
                    //dbcontext.Update<Usuario>(userWillian);

                    //exemplo 1, salva as alteracos na base de forma simples
                    //neste caso apenas monta o SQL para atualizar o campo SENHA
                    //se a senha for a mesma nao será feito um novo SQL
                    //dbcontext.SaveChanges();

                    //MUDANÇAS DE ESTADO NA CONEXÃO
                    //dbcontext.Database.GetDbConnection().StateChange += program_StateChange;
                    //var usuarioss = dbcontext.Usuarios.ToList();
                    //var inst = dbcontext.InstituicoesEnsino.ToList();


                    //CARREGAMENTO ANSIOSO - EAGER LOADING
                    //carrega todas as informações de um objeto ao ser referenciada e coloca na memoria, pode ser lento
                    //referencia as inst.de ensino e carrega ao mesmo tempo todos os usuarios para cada instituicao de ensino
                    //var instituicao2 = dbcontext.InstituicoesEnsino.Include(i => i.Usuario).FirstOrDefault();
                    //var usuario12 = instituicao2.Usuario;


                    //LAZY LOADING - CARREGAMENTO PREGUISO, POR DEMANDA
                    //var us1 = dbcontext.Usuarios.FirstOrDefault();
                    //var inst1 = us1.InstituicoesEnsino;


                    //ADICIONAR INSTANCIA RELACIONADA
                    //var helena = CriarUsuario("Helena");
                    //helena.InstituicoesEnsino.Add(new InstituicaoEnsino() { Nome = "Esucri" });
                    //helena.Identificacao = new Identificacao() { Numero = "123456789" };
                    //dbcontext.Usuarios.Add(helena);
                    //dbcontext.SaveChanges();
                    //var userHelena = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "Helena");

                    //ATUALIZAR INSTANCIA RELACIONADA
                    //var helena = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "Helena");
                    ////helena.InstituicoesEnsino.Add(new InstituicaoEnsino() { Nome = "UNESC" });
                    ////helena.InstituicoesEnsino.Add(new InstituicaoEnsino() { Nome = "SATC" });
                    ////dbcontext.SaveChanges();
                    //var ie = helena.InstituicoesEnsino.FirstOrDefault(i => i.Nome == "UNESC");
                    //ie.Nome = "CEDUP";
                    //dbcontext.SaveChanges();

                    //REMOVER ITEM DENTRO DE INSTANCIA RELACIONADA
                    //var helena = dbcontext.Usuarios.FirstOrDefault(u => u.Nome == "Helena");
                    //var ie = helena.InstituicoesEnsino.FirstOrDefault(i => i.Nome == "CEDUP");
                    //helena.InstituicoesEnsino.Remove(ie);
                    //dbcontext.SaveChanges();


                    //EXECUTANDO SQL NO EFCore COM PROJEÇÃO
                    //////var sql = "SELECT nome, sobrenome FROM usuarios";
                    ////////obtem conexao com base de dados
                    //////var connection = dbcontext.Database.GetDbConnection();
                    //////var listaDeUsuarios = new List<UsuarioDTO>();

                    //////using (var command = connection.CreateCommand())
                    //////{
                    //////    connection.Open();
                    //////    //passa o SQL
                    //////    command.CommandText = sql;
                    //////    using (var dataReader = command.ExecuteReader())
                    //////    {
                    //////        //verifica se tem linhas no dataReader
                    //////        if(dataReader.HasRows)
                    //////        {
                    //////            while(dataReader.Read())
                    //////            {
                    //////                //otendo dados de cada linha
                    //////                var userDTO = new UsuarioDTO();
                    //////                userDTO.Nome = dataReader["nome"].ToString();
                    //////                userDTO.Sobrenome = dataReader["sobrenome"].ToString();
                    //////                listaDeUsuarios.Add(userDTO);
                    //////            }
                    //////        }
                    //////    }
                    //////}
                    ///


                    //SQL INJECTION

                    //exemplo de SQL Injection
                    //var filtroPesquisa = "' or 1='1";

                    //var sql = "SELECT nome, sobrenome FROM usuarios WHERE nome = @nomeUsuario";

                    ////obtem conexao com base de dados
                    //var connection = dbcontext.Database.GetDbConnection();
                    //var listaDeUsuarios = new List<UsuarioDTO>();

                    //using (var command = connection.CreateCommand())
                    //{
                    //    connection.Open();
                    //    //passa o SQL
                    //    command.CommandText = sql;

                    //    //parametros
                    //    MySqlParameter prm = new MySqlParameter("@nomeUsuario", MySqlDbType.VarChar);
                    //    prm.Value = filtroPesquisa;
                    //    command.Parameters.Add(prm);

                    //    using (var dataReader = command.ExecuteReader())
                    //    {
                    //        //verifica se tem linhas no dataReader
                    //        if (dataReader.HasRows)
                    //        {
                    //            while (dataReader.Read())
                    //            {
                    //                //otendo dados de cada linha
                    //                var userDTO = new UsuarioDTO();
                    //                userDTO.Nome = dataReader["nome"].ToString();
                    //                userDTO.Sobrenome = dataReader["sobrenome"].ToString();
                    //                listaDeUsuarios.Add(userDTO);
                    //            }
                    //        }
                    //    }
                    //}

                    ////COMANDOS PARA CHAMAR STORE PROCEDURES

                    ////obtem conexao com base de dados
                    //var connection = dbcontext.Database.GetDbConnection();
                    //var listaDeUsuarios = new List<UsuarioDTO>();

                    //using (var command = connection.CreateCommand())
                    //{
                    //    connection.Open();
                    //    //chamar store procedure, ela deve existir na base de dados
                    //    command.CommandText = "call spObterTodosUsuarios()";
                    //    using (var dataReader = command.ExecuteReader())
                    //    {
                    //        //verifica se tem linhas no dataReader
                    //        if (dataReader.HasRows)
                    //        {
                    //            while (dataReader.Read())
                    //            {
                    //                //otendo dados de cada linha
                    //                var userDTO = new UsuarioDTO();
                    //                userDTO.Nome = dataReader["nome"].ToString();
                    //                userDTO.Sobrenome = dataReader["sobrenome"].ToString();
                    //                listaDeUsuarios.Add(userDTO);
                    //            }
                    //        }
                    //    }
                    //}


                    //COMANDOS PARA CHAMAR STORE PROCEDURES COM PARAMETRO

                    ////obtem conexao com base de dados
                    //var connection = dbcontext.Database.GetDbConnection();
                    //var listaDeUsuarios = new List<UsuarioDTO>();

                    //using (var command = connection.CreateCommand())
                    //{
                    //    connection.Open();

                    //    //chamar store procedure, ela deve existir na base de dados
                    //    command.CommandText = "call spObterUsuario(@usuarioID)";
                    //    MySqlParameter prm = new MySqlParameter("@usuarioID", MySqlDbType.Int32);
                    //    prm.Value = 38;
                    //    command.Parameters.Add(prm);

                    //    using (var dataReader = command.ExecuteReader())
                    //    {
                    //        //verifica se tem linhas no dataReader
                    //        if (dataReader.HasRows)
                    //        {
                    //            while (dataReader.Read())
                    //            {
                    //                //otendo dados de cada linha
                    //                var userDTO = new UsuarioDTO();
                    //                userDTO.Nome = dataReader["nome"].ToString();
                    //                userDTO.Sobrenome = dataReader["sobrenome"].ToString();
                    //                listaDeUsuarios.Add(userDTO);
                    //            }
                    //        }
                    //    }
                    //}


                    //PROJEÇÃO DE CONSULTA SQL COM STORE PROCEDURES

                    //obtem conexao com base de dados
                    var connection = dbcontext.Database.GetDbConnection();
                    var listaUsuariosInstituicaoEnsino = new List <UsuarioInstituicaoEnsinoDTO>();

                    using (var command = connection.CreateCommand())
                    {
                        connection.Open();

                        //chamar store procedure, ela deve existir na base de dados
                        command.CommandText = "call spObterUsuariosPorInstituicoes";
                        MySqlParameter prm = new MySqlParameter("@usuarioID", MySqlDbType.Int32);
                        prm.Value = 38;
                        command.Parameters.Add(prm);

                        using (var dataReader = command.ExecuteReader())
                        {
                            //verifica se tem linhas no dataReader
                            if (dataReader.HasRows)
                            {
                                while (dataReader.Read())
                                {
                                    //otendo dados de cada linha
                                    //sempre colocar ["NomeUsuario"] o mesmo que sera retornado no SQL
                                    var usuarioInstituicaoEnsinoDTO = new UsuarioInstituicaoEnsinoDTO();

                                    usuarioInstituicaoEnsinoDTO.NomeUsuario      = dataReader["NomeUsuario"].ToString();
                                    usuarioInstituicaoEnsinoDTO.SobrenomeUsuario = dataReader["SobrenomeUsuario"].ToString();
                                    usuarioInstituicaoEnsinoDTO.NomeInstituicao  = dataReader["NomeInstituicao"].ToString();

                                    listaUsuariosInstituicaoEnsino.Add(usuarioInstituicaoEnsinoDTO);
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadKey();
            }

            //Console.WriteLine("Ok!");
            //Console.ReadKey();
        }