Compartilhar via


Mapeamento de tabela em adaptadores de dados

Quando um adaptador de dados lê dados de uma fonte de dados, ele determina onde deseja colocar os dados na tabela (ou tabelas) dataset correspondentes usando um mapeamento de tabela.O mapeamento vincula os nomes das colunas na fonte com aqueles na tabela dataset.For example, information from a column called au_id in the data source might belong in a column called author_id_number in the dataset table.

Observação:

Na versão anterior do Visual Studio, adaptadores de dados eram usados para comunicação entre um aplicativo e um banco de dados. Enquanto adaptadores de dados são ainda um componente principal do .NET Framework Providers Dados, TableAdapters são componentes gerados pelo designer que simplificam o processo de mover dados entre seu aplicativo e um banco de dados.Para obter mais informações sobre como trabalhar com TableAdapters, consulte Visão geral do TableAdapter.

Por padrão, quando você usa ferramentas do Visual Studio para gerar um dataset a partir das informações de uma fonte de dados, os elementos dataset têm os mesmos nomes que eles têm na fonte.Entretanto, existirão vezes que os nomes na fonte de dados e o conjunto de dados não corresponderão:

  • O dataset foi criado a partir de um esquema existente que usa diferentes nomes.

  • Você deseja alterar nomes dos elementos de dados no DataSet para sua conveniência, legibilidade, conversão para ou de um idioma estrangeiro, ou outro motivo.

  • Você deseja controlar os nomes de membros de dados digitados quando você gera um DataSet do adaptador.

Estrutura de mapeamento de tabela

Table mappings are established using the adapter's TableMappings property, which is a collection of items of type DataTableMapping.There is one DataTableMapping object for each set of tables being mapped.Normalmente não existe apenas um item assim, pois adaptadores são normalmente associados apenas a uma única tabela fonte e uma tabela única dataset.(However, a stored procedure can return multiple row sets; if so, the second and subsequent tables are mapped using the second and subsequent mappings in the TableMappings collection.)

Each mapping item in turn contains properties to identify the data-source table, the dataset table, and a ColumnMappings property containing items that represent the actual mappings.

Mapeamento de tabela em ação

When you call a data adapter's Fill method, the adapter goes through the following process to determine where in the dataset to write the data:

  1. The adapter looks up each source column name in the TableMappings object.

  2. Quando encontrar o nome da coluna fonte, ele obtém o nome (mapeado) correspondente para a coluna correspondente na tabela dataset.

  3. Usando o nome obtido na etapa 2, o adaptador grava os dados da coluna fonte para a coluna dataset correspondente.

Existe uma variedade de condições que podem impedir o adaptador de seguir o processo descrito acima.Os dois principais são:

  • Nenhum mapeamento pôde ser encontrado para uma coluna fonte.This might be because there is nothing defined for the TableMappings property, or because a specific column is not mapped.

  • The column to be written is not defined in the dataset's schema, whether or not it is mapped in the TableMappings property.

O adaptador dá suporte a duas propriedades que permitem que você especifique o que acontece quando ocorre qualquer dessas situações.As situações não são necessariamente condições de erro, porque o adaptador pode preencher o dataset mesmo se qualquer situação ocorrer.

The MissingMappingAction property allows you to specify what action the adapter should take if the mapping is missing.Configurações possíveis são:

  • Passthrough - the adapter attempts to load the column into a dataset column of the same name.If there is no dataset column of that name, the behavior depends on the MissingSchemaAction enumeration setting (see below).

  • Ignore - columns that are not mapped properly are not loaded into the dataset.

  • Error - raises an error.

The MissingSchemaAction property allows you to specify what should happen when the adapter tries to write data to a column that is not defined in the dataset's schema.Os valores possíveis são:

  • Add - the table or column is added to the schema and to the dataset.

  • AddWithKey - the table or column is added to the dataset and schema along with information about the primary key.

  • Ignore - the table or column not represented in the dataset schema is not added to the dataset.

  • Error - the adapter raises an error.

Você geralmente define ambas as propriedades em conjunto para acomodar necessidades específicas do aplicativo.Setting the MissingMappingAction property to Passthrough and the MissingSchemaAction property to Add has the effect of automatically duplicating the table and column names from the source in the dataset.

Inversamente, você pode especificar a verificação de erros em aplicativos onde o esquema dataset está estritamente definido.Nesse caso, a obtenção de dados a partir de uma fonte sem uma coluna de destino claramente definida no dataset, pode constituir violação de uma regra de negócio ou outro erro.

You specify Ignore when you want to ensure that the only data loaded into the dataset is that which you have explicitly defined in the schema or mapped in the TableMappings property.This is useful if the adapter calls a stored procedure or SQL statement that returns more columns than you need in the dataset.

Consulte também

Tarefas

Como: Mapear dados-fonte Columns to Dataset dados-tabela Columns

Conceitos

Introdução a adaptadores de dados

Preenchendo um DataSet de um DataAdapter

O que Há de Novo em Dados

Criando aplicativos de dados usando Visual Studio

Referência

Caixa de diálogo Table Mappings

Outros recursos

Trabalhando com DataAdapters

Criando adaptadores de dados

Explicações Passo a passo sobre Dados

ADO.NET