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.

Nota

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 exemplo 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 Download de 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).

Descriçã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 assemblies que podem não ser instalados por padrão em 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 determinar 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ê ligue SubmitChanges para o final desta explicação passo a passo.

Para adicionar um novo objeto de entidade Customer

  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.

Nota

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.

Consulte também