Resumo do processo de inferência de esquema de DataSet

Primeiro, o processo de inferência determina, no documento XML, quais elementos serão inferidos como tabelas. No XML restante, o processo de inferência determina as colunas dessas tabelas. Para tabelas aninhadas, o processo de inferência gera objetos aninhados DataRelation e ForeignKeyConstraint.

Veja a seguir um breve resumo das regras de inferência:

  • Elementos que têm atributos são inferidos como tabelas.

  • Elementos que têm elementos filho são inferidos como tabelas.

  • Elementos que se repetem são inferidos como uma única tabela.

  • Se o documento, ou raiz, não tiver atributos e nenhum elemento filho que seria inferido como colunas, ele será inferido como um DataSet. Caso contrário, o elemento do documento será inferido como uma tabela.

  • Os atributos são inferidos como colunas.

  • Elementos que não têm atributos ou elementos filho e que não se repetem são inferidos como colunas.

  • Para elementos que são inferidos como tabelas aninhadas em outros elementos que também são inferidos como tabelas, um DataRelation aninhado é criado entre as duas tabelas. Uma nova coluna de chave primária chamada TableName_Id é adicionada às duas tabelas e usada pelo DataRelation. Um ForeignKeyConstraint é criado entre as duas tabelas usando a coluna TableName_Id.

  • Para elementos que são inferidos como tabelas e que contêm texto, mas não têm elementos filho, uma nova coluna chamada TableName_Text é criada para o texto de cada um dos elementos. Se um elemento for inferido como uma tabela e tiver texto, mas também tiver elementos filho, o texto será ignorado.

Confira também