Partilhar via


Passo a passo: Manipulando dados (C#)

Este passo a passo fornece um cenário LINQ to SQL fundamental de ponta a ponta para adicionar, modificar e excluir dados em um banco de dados. Você usará uma cópia do banco de dados Northwind de exemplo para adicionar um cliente, alterar o nome de um cliente e excluir um pedido.

Observação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você tem e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.

Este passo a passo foi escrito usando as configurações de desenvolvimento do Visual C#.

Pré-requisitos

Este passo a passo requer o seguinte:

  • Este passo a passo usa uma pasta dedicada ("c:\linqtest6") para armazenar arquivos. Crie esta pasta antes de começar o passo a passo.

  • O banco de dados de amostra Northwind.

    Se não tiver esta base de dados no computador de desenvolvimento, pode transferi-la a partir do site de transferências da Microsoft. Para obter instruções, consulte Como descarregar bancos de dados de exemplo. Depois de baixar o banco de dados, copie o arquivo northwnd.mdf para a pasta c:\linqtest6.

  • Um arquivo de código C# gerado a partir do banco de dados Northwind.

    Você pode gerar esse arquivo usando o Object Relational Designer ou a ferramenta SQLMetal. Este passo a passo foi escrito usando a ferramenta SQLMetal com a seguinte linha de comando:

    sqlmetal /code:"c:\linqtest6\northwind.cs" /language:csharp "C:\linqtest6\northwnd.mdf" /pluralize

    Para obter mais informações, consulte SqlMetal.exe (Ferramenta de geração de código).

Visão geral

Este passo a passo consiste em seis tarefas principais:

  • Criando a solução LINQ to SQL no Visual Studio.

  • Adicionando o arquivo de código do banco de dados ao projeto.

  • Criação de um novo objeto de cliente.

  • Modificar o nome de contato de um cliente.

  • Eliminar uma encomenda.

  • Submeter estas alterações à base de dados Northwind.

Criando uma solução LINQ to SQL

Nesta primeira tarefa, você cria uma solução do Visual Studio que contém as referências necessárias para criar e executar um projeto LINQ to SQL.

Para criar uma solução LINQ to SQL

  1. No menu Arquivo do Visual Studio, aponte para Novo e clique em Projeto.

  2. No painel Tipos de projeto na caixa de diálogo Novo Projeto , clique em Visual C#.

  3. No painel Modelos , clique em Aplicativo de Console.

  4. Na caixa Nome , digite LinqDataManipulationApp.

  5. Na caixa Local , verifique onde você deseja armazenar seus arquivos de projeto.

  6. Clique em OK.

Adicionando referências e diretivas LINQ

Este passo a passo usa componentes que podem não ser instalados por defeito no seu projeto. Se System.Data.Linq não estiver listado como uma referência em seu projeto, adicione-o, conforme explicado nas seguintes etapas:

Para adicionar System.Data.Linq

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em Referências e clique em Adicionar Referência.

  2. Na caixa de diálogo Adicionar referência , clique em .NET , clique no assembly System.Data.Linq e, em seguida, clique em OK .

    A montagem é adicionada ao projeto.

  3. Adicione as seguintes diretivas na parte superior da Program.cs:

    using System.Data.Linq;
    using System.Data.Linq.Mapping;
    

Adicionando o arquivo de código Northwind ao projeto

Estas etapas pressupõem que você tenha usado a ferramenta SQLMetal para gerar um arquivo de código do banco de dados de exemplo Northwind. Para obter mais informações, consulte a seção Pré-requisitos anteriormente neste passo a passo.

Para adicionar o arquivo de código northwind ao projeto

  1. No menu Projeto , clique em Adicionar Item Existente.

  2. Na caixa de diálogo Adicionar Item Existente , navegue até c:\linqtest6\northwind.cs e clique em Adicionar.

    O arquivo northwind.cs é adicionado ao projeto.

Configurando a conexão do banco de dados

Primeiro, teste sua conexão com o banco de dados. Note especialmente que o banco de dados, Northwnd, não tem caractere i. Se você gerar erros nas próximas etapas, revise o arquivo northwind.cs para verificar como a classe parcial Northwind é escrita.

Para configurar e testar a conexão do banco de dados

  1. Digite ou cole o seguinte código no Main método na classe Program:

    // Use the following connection string.
    Northwnd db = new Northwnd(@"c:\linqtest6\northwnd.mdf");
    
    // Keep the console window open after activity stops.
    Console.ReadLine();
    
  2. Pressione F5 para testar o aplicativo neste ponto.

    Uma janela Console é aberta.

    Você pode fechar o aplicativo pressionando Enter na janela Console ou clicando em Parar Depuração no menu Depurar do Visual Studio.

Criando uma nova entidade

Criar uma nova entidade é simples. Você pode criar objetos (como Customer) usando a new palavra-chave.

Nesta e nas seções a seguir, você está fazendo alterações apenas no cache local. Nenhuma alteração é enviada para o banco de dados até que você execute SubmitChanges no final deste tutorial.

Para adicionar um novo objeto de entidade Cliente

  1. Crie um novo Customer adicionando o seguinte código antes Console.ReadLine(); no Main método:

    // Create the new Customer object.
    Customer newCust = new Customer();
    newCust.CompanyName = "AdventureWorks Cafe";
    newCust.CustomerID = "ADVCA";
    
    // Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust);
    
    Console.WriteLine("\nCustomers matching CA before insert");
    
    foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
  2. Pressione F5 para depurar a solução.

  3. Pressione Enter na janela Console para parar a depuração e continuar o passo a passo.

Atualizando uma entidade

Nas etapas a seguir, você recuperará um Customer objeto e modificará uma de suas propriedades.

Para alterar o nome de um Cliente

  • Adicione o seguinte código acima Console.ReadLine();:

    // Query for specific customer.
    // First() returns one object rather than a collection.
    var existingCust =
        (from c in db.Customers
         where c.CustomerID == "ALFKI"
         select c)
        .First();
    
    // Change the contact name of the customer.
    existingCust.ContactName = "New Contact";
    

Excluindo uma entidade

Usando o mesmo objeto de cliente, você pode excluir o primeiro pedido.

O código a seguir demonstra como cortar relações entre linhas e como excluir uma linha do banco de dados. Adicione o seguinte código antes Console.ReadLine para ver como os objetos podem ser excluídos:

Para excluir uma linha

  • Adicione o seguinte código logo acima Console.ReadLine();:

    // Access the first element in the Orders collection.
    Order ord0 = existingCust.Orders[0];
    
    // Access the first element in the OrderDetails collection.
    OrderDetail detail0 = ord0.OrderDetails[0];
    
    // Display the order to be deleted.
    Console.WriteLine
        ("The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}",
        detail0.OrderID, detail0.ProductID);
    
    // Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0);
    

Enviando alterações ao banco de dados

A etapa final necessária para criar, atualizar e excluir objetos é realmente enviar as alterações para o banco de dados. Sem esta etapa, as alterações são apenas locais e não aparecerão nos resultados da consulta.

Para enviar alterações ao banco de dados

  1. Insira o seguinte código logo acima Console.ReadLine:

    db.SubmitChanges();
    
  2. Insira o seguinte código (após SubmitChanges) para mostrar os efeitos antes e depois do envio das alterações:

    Console.WriteLine("\nCustomers matching CA after update");
    foreach (var c in db.Customers.Where(cust =>
        cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
  3. Pressione F5 para depurar a solução.

  4. Pressione Enter na janela Console para fechar o aplicativo.

Observação

Depois de adicionar o novo cliente enviando as alterações, você não poderá executar essa solução novamente como está. Para executar a solução novamente, altere o nome do cliente e o ID do cliente a ser adicionado.

Ver também