Série LINQ to SQL Parte 4 – Recuperando um registro específico com LINQ

Em continuação à série LINQ to SQL, nesse post veremos como fazer query dos dados em banco e o bind diretamente em controles ASP.NET. Nesse exemplo iremos:

  1. Codificar o método que retornará um objeto produto;
  2. Codificar o preenchimento do objeto na UI

Query em registros únicos

Na classe beProduto.cs crie o método para recuperar um produto específico. Segue abaixo o código:

 public Produto RecuperarProduto(int idProduto)
   {
       BlogLinqDemoDataContext bd = new BlogLinqDemoDataContext();
       try
        {
            Produto oProduto = bd.Produtos.Single(p => p.ProdutoID == idProduto);
            return oProduto;
        }
        catch (InvalidOperationException)
        {
            throw new ApplicationException(“Produto não encontrado !”);
        } 
    }

 Com apenas 3 linhas de código é possível fazer a recuperação do objeto. Veja que se o objeto não foi localizado, o .net dispara uma exceção do tipo InvalidOperationException que poderá ser tratada e exibida a mensagem de produto inexistente.

Antes mesmo de eu explicar todos vocês já deviam ter adivinhado, inclusive no post anterior, que estamos fazendo uma query na tabela de Produtos pois o código é muito intuitivo. Essa é a idéia do LINQ, fazer ser simples algo que antes costumava dar um trabalho que sempre era repetitivo.

Em seguida, codifique a UI para recuperar e exibir o objeto:

     protected void btBuscar_Click(object sender, EventArgs e)
    {
        beProduto beoProduto = new beProduto();
        try
        {
            Produto oProduto = beoProduto.RecuperarProduto(Convert.ToInt32(txtCodigoProduto.Text));
            txtDescricao.Text = oProduto.Descricao;
            txtValor.Text = oProduto.Valor.ToString(“N”);
            ddlCategoria.SelectedValue = oProduto.CategProdID.ToString();
        }
        catch (Exception ex)
        {
            lblerro.Text = ex.Message;
        }
    }

Dessa forma é possível fazer a recuperação do objeto e exibição dele nos controles. Veja que para acessar a categoria do produto eu fiz acesso à propriedade CategProdID do objeto Produto.

Fiquem atentos com a continuidade dessa série e execute os exemplos passo-a-passo pois é a melhor forma de aprender, fazendo na prática 🙂

Até o próximo post e aguardo comentários [Y]

Leave a Reply

Your email address will not be published. Required fields are marked *