示例#1
0
 public Cavaleiro Buscar(int id)
 {
     using (var db = new ContextoDeDados())
     {
         return(db.Cavaleiro.Find(id));
     }
 }
        public void Atualizar(Cavaleiro cavaleiro)
        {
            /*
             * Para fazermos uma conexão com o banco via EF, precisamos
             * instanciar um objeto do mesmo tipo de nosso DbContext, que no nosso
             * caso é o ContextoDeDados.
             */
            using (var db = new ContextoDeDados())
            {
                // Atualizamos o estado de todos os objetos envolvidos em relacionamentos com Cavaleiro.
                // Caso Id seja diferente de 0, é atualizado. Caso seja 0, é inserido.
                db.Entry <Local>(cavaleiro.LocalNascimento).State  = cavaleiro.LocalNascimento.Id == default(int) ? EntityState.Added : EntityState.Modified;
                db.Entry <Local>(cavaleiro.LocalTreinamento).State = cavaleiro.LocalTreinamento.Id == default(int) ? EntityState.Added : EntityState.Modified;

                foreach (var golpe in cavaleiro.Golpes)
                {
                    db.Entry <Golpe>(golpe).State = golpe.Id == default(int) ? EntityState.Added : EntityState.Modified;
                }

                foreach (var imagem in cavaleiro.Imagens)
                {
                    db.Entry <Imagem>(imagem).State = imagem.Id == default(int) ? EntityState.Added : EntityState.Modified;
                }

                db.Entry <Cavaleiro>(cavaleiro).State = EntityState.Modified;
                db.SaveChanges();
            }
        }
示例#3
0
 public IEnumerable <Cavaleiro> Todos()
 {
     using (var db = new ContextoDeDados())
     {
         //TODO: paginar
         return(db.Cavaleiro.ToList());
     }
 }
示例#4
0
 public void CriarUsuario(Usuario usuario)
 {
     using (var db = new ContextoDeDados())
     {
         db.Entry <Usuario>(usuario).State = System.Data.Entity.EntityState.Added;
         db.SaveChanges();
     }
 }
示例#5
0
 public int Adicionar(Cavaleiro cavaleiro)
 {
     using (var db = new ContextoDeDados())
     {
         /*
          * Para informarmos um INSERT, devemos setar o State como Added.
          */
         db.Entry <Cavaleiro>(cavaleiro).State = EntityState.Added;
         db.SaveChanges();
         return(cavaleiro.Id);
     }
 }
 private IQueryable <Cavaleiro> CavaleiroComSeusRelacionamentos(ContextoDeDados db)
 {
     /*
      * Estamos utilizando Include para fazer o "Eager Load"
      * dos relacionamentos, e poder deletá-los em cascata.
      */
     return(db.Cavaleiro
            .Include(_ => _.Golpes)
            .Include(_ => _.Imagens)
            .Include(_ => _.LocalNascimento)
            .Include(_ => _.LocalTreinamento));
 }
示例#7
0
 public void Excluir(int id)
 {
     using (var db = new ContextoDeDados())
     {
         /*
          * Para realizar um DELETE no banco de dados,
          * infelizmente precisamos buscar o objeto no banco para então
          * removê-lo.
          */
         Cavaleiro cavaleiroASerExcluido = db.Cavaleiro.Find(id);
         db.Entry <Cavaleiro>(cavaleiroASerExcluido).State = EntityState.Deleted;
         db.SaveChanges();
     }
 }
 public IEnumerable <Cavaleiro> Todos(int tamanhoPagina, int pagina)
 {
     /*
      * Sobre o Skip, assumamos tamanho = 5
      *   skip(1) = tamanho * (1-1) = 0
      *   skip(2) = tamanho * (2-1) = 5
      *   skip(3) = tamanho * (3-1) = 10
      *   skip(4) = tamanho * (4-1) = 15
      */
     using (var db = new ContextoDeDados())
         return(CavaleiroComSeusRelacionamentos(db)
                .OrderBy(_ => _.Nome)
                .Skip(tamanhoPagina * (pagina - 1))
                .Take(tamanhoPagina)
                .ToList());
 }
示例#9
0
        public Usuario BuscarUsuarioPorAutenticacao(string email, string senha)
        {
            using (var db = new ContextoDeDados())
            {
                /*
                 * Neste caso, o usuário possui uma lista de permissões.
                 * Essa lista de permissões é uma tabela no banco também.
                 * Podemos, através do include, dizer que, além de carregar os dados
                 * do usuário, deve trazer carregados as permissões dele.
                 */
                Usuario usuario = db.Usuario.Include("Permissoes").FirstOrDefault(
                    u =>
                    u.Email.Equals(email) &&
                    u.Senha.Equals(senha));

                return(usuario);
            }
        }
 public void Excluir(int id)
 {
     using (var db = new ContextoDeDados())
     {
         /*
          * Para realizar um DELETE no banco de dados,
          * infelizmente precisamos buscar o objeto no banco para então
          * removê-lo.
          */
         var cavaleiroASerExcluido = db.Cavaleiro.Find(id);
         var localNascimento       = db.Cavaleiro.Include(_ => _.LocalNascimento).Single(_ => _.Id == id).LocalNascimento;
         var localTreinamento      = db.Cavaleiro.Include(_ => _.LocalTreinamento).Single(_ => _.Id == id).LocalTreinamento;
         // devido à FK partindo de cavaleiro para local primeiro removemos cavaleiro
         db.Cavaleiro.Remove(cavaleiroASerExcluido);
         db.Local.Remove(localNascimento);
         db.Local.Remove(localTreinamento);
         db.SaveChanges();
     }
 }
示例#11
0
 public void Atualizar(Cavaleiro pedido)
 {
     /*
      * Para fazermos uma conexão com o banco via EF, precisamos
      * instanciar um objeto do mesmo tipo de nosso DbContext, que no nosso
      * caso é o ContextoDeDados.
      */
     using (var db = new ContextoDeDados())
     {
         /*
          * Existem várias formas de fazer um Update de uma entidade.
          * Um deles é utilizando o método Entry, na qual você informa o tipo
          * de objeto que será feito o update (<Pedido>), passa o objeto
          * como parâmetro em seguida seta o stado deste objeto no banco de dados.
          * O EF irá saber que deve fazer um Update quando o estado for EntityState.Modified.
          *
          * Em seguida chamaremos o método .SaveChanges(), que irá definitivamente
          * executar a query no banco de dados.
          */
         db.Entry <Cavaleiro>(pedido).State = EntityState.Modified;
         db.SaveChanges();
     }
 }
 public int TotalCavaleiros()
 {
     using (var db = new ContextoDeDados())
         return(db.Cavaleiro.Count());
 }
 public Cavaleiro Buscar(int id)
 {
     using (var db = new ContextoDeDados())
         return(CavaleiroComSeusRelacionamentos(db).SingleOrDefault(_ => _.Id == id));
 }