Demonstra Passo a passo: Criando um gerador de dados personalizados

Como desenvolver o seu banco de dados esquema, você pode testar com mais eficiência as alterações propostas pelo preenchimento de um banco de dados de teste com dados que representa os dados de produção mais próximo possível. Geradores de dados personalizados fornecem dados de teste que atende as especificações mais exatamente do que os geradores de dados internos. Por exemplo, você pode criar um gerador de preenchimento de uma coluna da tabela com seqüências de caracteres aleatórias em uma lista que você especificar ou com números em um intervalo que você especificar. Para obter mais informações, consulte Uma visão geral da extensibilidade do gerador de dados.

Este tópico passo a passo, você criará um gerador de dados personalizados que gera cadeias de caracteres de endereço aleatório. Esta explicação passo a passo, você executará as seguintes tarefas:

  1. Criar uma biblioteca de classe para o seu gerador de dados de endereço personalizado que herda de Generator.

  2. Adicione uma propriedade de saída para usar como a saída do gerador.

  3. Substituir o OnGenerateNextValues método para gerar os dados.

  4. Assine o assembly do gerador.

  5. Crie um arquivo XML associado ao assembly que é usado para registro.

  6. Criar um o projeto de banco de dados e um o plano de geração de dados para testar seu gerador de dados personalizados.

Pré-requisitos

Você deve ter um Visual Studio Premium ou Visual Studio Ultimate instalado para concluir esta explicação passo a passo.

A criação de uma biblioteca de classe para o gerador de personalizado

A primeira etapa é criar uma biblioteca de classe para o seu gerador de dados de endereço personalizado.

Para criar uma biblioteca de classe para um gerador de personalizado

  1. Criar um Visual C# biblioteca de classes do projeto e o nome de SampleGenerator.

  2. Em Solution Explorer, clique com o botão direito no projeto e, em seguida, clique em Adicionar referência de.

  3. Clique na .NET guia.

  4. No Nome do componente coluna, selecione os seguintes componentes:

    • Microsoft.Data.Schema

    • Microsoft.Data.Schema.SQL

    • Microsoft.Data.Schema.Tools

    Dica

    Pressione e segure a tecla CTRL enquanto clica para selecionar vários componentes.

  5. Clique em OK depois que você tiver selecionado todos os componentes necessários.

    As referências selecionadas aparecerão sob o referências o nó do projeto no Solution Explorer.

  6. Na parte superior do código janela, antes da declaração de classe, adicione as seguintes linhas de código:

    using Microsoft.Data.Schema.Tools.DataGenerator;
    using Microsoft.Data.Schema.Extensibility;
    using Microsoft.Data.Schema;
    using Microsoft.Data.Schema.Sql;
    
  7. Renomeie a classe de Class1 para AddressGenerator.

    Aviso

    Por padrão, o nome que você forneça sua classe é o nome que aparece na lista de gerador coluna o Detalhes da coluna janela. Você deve especificar um nome que não está em conflito com o nome de um gerador de interno ou outro gerador personalizado.

    public class AddressGenerator
    {
    }
    
  8. Especificar que sua classe herda de Generator, conforme mostrado no exemplo a seguir:

    public class AddressGenerator : Generator
    {
    }
    
  9. Adicionar o DatabaseSchemaProviderCompatibilityAttribute, conforme mostrado no exemplo a seguir:

    [DatabaseSchemaProviderCompatibility(typeof(SqlDatabaseSchemaProvider))]
    public class AddressGenerator : Generator
    {
    }
    

    Para obter mais informações sobre o atributo de extensão de compatibilidade, consulte Estender os recursos de banco de dados de Visual Studio.

  10. No menu File, clique em Save All.

Adicionar uma propriedade de saída para o gerador

Na seção anterior, você criou uma biblioteca de classes herdadas a partir de Generator classe. Nesta seção, você irá adicionar uma propriedade de saída à sua classe. Propriedades de saída contêm os valores dos dados gerados. Propriedades de saída também especificam quais tipos de dados que esse gerador pode produzir.

Para adicionar uma propriedade de saída

  1. Crie o membro variáveis que serão usadas para gerar o endereço, como mostrado no exemplo a seguir.

    A variável _address será usada em uma etapa posterior em uma propriedade de saída.

    private Random _random;
    private string _street;
    private string _city;
    private string _state;
    private int _zipCode;
    private string _address;
    
    private static readonly List<String> _states =
                new List<string>() { "AK", "AL", "AK", "AZ", "AR", "CA", "CO", "CT", "DE", "FL", "GA", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NM", "NY", "NC", "ND", "OH", "OK", "OR", "PA", "RI", "SC", "SD", "TN", "TX", "UT", "VT", "VA", "WA", "WV", "WI", "WY" };
    
  2. Crie uma propriedade privada para a variável de membro _random, conforme mostrado no exemplo a seguir:

    private Random Random
            {
                get
                {
                    if (_random == null)
                        _random = new Random(base.Seed);
    
                    return _random;
                }
            }
    
  3. Criar uma propriedade pública para a variável de membro _address e adicionar o OutputAttribute a ele, conforme mostrado no exemplo a seguir:

    [Output(Description = "Generates street and city values of \"2150 Newton Street, San Francisco\", with random state and zip code.", Name = "Address")]
            public string Address
            {
                get
                {
                    return this._address;
                }
            }
    
  4. No menu File, clique em Save All.

Substituindo o método OnGenerateNextValues

Visual Studiochamadas de OnGenerateNextValues método de cada gerador para cada conjunto de valores que ele necessidades. Quando você cria um gerador de dados, você deve substituir esse método para fornecer a lógica que gera valores para cada uma de suas propriedades de saída.

Para substituir o método OnGenerateNextValues

  1. Substituir o OnGenerateNextValues método, conforme mostrado no exemplo a seguir:

    protected override void OnGenerateNextValues()
    {
        this._street = "2150 Newton Street";
                this._city = "San Francisco";
                this._state = _states[Random.Next(0, _states.Count)];
                this._zipCode = Int32.Parse(String.Format("{0}{1}{2}{3}{4}", GetRandomDigit(1), GetRandomDigit(), GetRandomDigit(), GetRandomDigit(), GetRandomDigit()));
                this._address = String.Format("{0}, {1}, {2} {3}", _street, _city, _state, _zipCode);
    }
    
  2. Adicione os seguintes métodos são usados na criação do valor da variável de _zipcode:

    private int GetRandomDigit()
            {
                return GetRandomDigit(0);
            }
    
            private int GetRandomDigit(int lowNumber)
            {
                return Random.Next(lowNumber, 10);
            }
    
  3. No menu File, clique em Save All.

O gerador de assinatura.

Em seguida, você deve entrar com um nome forte, o gerador de dados personalizados.

Para assinar o gerador de um nome forte

  1. Sobre o projeto menu, clique em Propriedades de SampleGenerator.

  2. Sobre o assinatura guia, selecione o Sign the assembly caixa de seleção.

  3. No Choose a strong name key file , clique em < New... >.

    O Create Strong Name Key caixa de diálogo aparece.

  4. No nome do arquivo de chave caixa, digite SampleGeneratorKey.

  5. Digite e confirme uma senha e clique em OK.

    Quando você constrói sua solução, o arquivo de chave é usado para assinar o assembly.

  6. No menu File, clique em Save All.

  7. Sobre o Build menu, clique em Build Solution.

    Você criou um gerador de dados personalizados.

Registrando o Assembly do gerador

Depois que seu assembly é assinado e compilado, a próxima etapa é coletar as informações de assembly geradas no projeto, incluindo a versão, a cultura e PublicKeyToken, para facilitar a registrar o assembly do gerador.

Para coletar informações de assembly

  1. No Exibir menu, clique em Other Windowse em seguida, clique em Janela de comando para abrir o comando janela.

  2. No comando janela, digite o seguinte código. Para FilePath, substitua o caminho e o nome do arquivo. dll de compilado. Inclua as aspas ao redor do caminho e nome de arquivo.

    ObservaçãoObservação

    Por padrão, o caminho do seu arquivo compilado. dll é SampleGenerator\bin\Debug.

    ? System.Reflection.Assembly.LoadFrom(@"<FilePath>").FullName
    
  3. Pressione Enter. A linha deverá ser semelhante a seguinte, com seu PublicKeyToken específico:

    " SampleGenerator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn"
    

    Notificar ou copiar essas informações de assembly; ele será usado no próximo procedimento.

Em seguida, você criará um arquivo XML usando as informações de assembly reunidas no procedimento anterior.

Para criar o arquivo XML

  1. Em Solution Explorer, selecione o projeto SampleGenerator.

  2. No menu Project, selecione Add New Item.

  3. No modelos de painel, localize e selecione o Arquivo XML item.

  4. No nome caixa de texto, digite SampleGenerator.Extensions.xml e clique no Add botão.

    O arquivo de SampleGenerator.Extensions.xml é adicionado ao projeto no Solution Explorer.

    ObservaçãoObservação

    Você deve usar o nome da sua dll (no caso, "samplegenerator" seguido por ".Extensions.xml") para o assembly registrar corretamente.

  5. Abra o arquivo SampleGenerator.Extensions.xml e atualizá-lo para coincidir com o seguinte XML. Substitua a versão do assembly, cultura e PublicKeyToken que você recuperou no procedimento anterior.

    ObservaçãoObservação

    O tipo de extensão deve usar o nome totalmente qualificado da classe. Nesse caso: type="SampleGenerator.AddressGenerator de extensão".

    <?xml version="1.0" encoding="utf-8"?>
    <extensions assembly="" version="1" xmlns="urn:Microsoft.Data.Schema.Extensions" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:Microsoft.Data.Schema.Extensions Microsoft.Data.Schema.Extensions.xsd">
     
    <extension type="SampleGenerator.AddressGenerator" assembly="SampleGenerator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=nnnnnnnnnnnnnnnn" enabled="true"/>
     
    </extensions>
     
    
  6. No menu File, clique em Save All.

Em seguida, você irá copiar o assembly e o arquivo XML para o diretório de extensões. Quando Visual Studio Premium é iniciado, ele identificará as extensões na % Program Files %\Microsoft Visual Studio 10.0\VSTSDB\Extensions diretório e subdiretórios e -los para usam na sessão de registro.

Para copiar e registrar o assembly e o arquivo XML para o diretório de extensões

  1. Crie uma pasta chamada CustomGenerators no % Program Files %diretório do \Microsoft Visual Studio 10.0\VSTSDB\Extensions\.

  2. Copiar o arquivo de montagem de SampleGenerator.dll a PastaDoProjeto\SampleGenerator\SampleGenerator\bin\Debug\ o diretório para o % Program Files %\Microsoft Visual Studio 10.0\VSTSDB\Extensions\ CustomGenerators pasta criada.

  3. Copiar o arquivo SampleGenerator.Extensions.xml do PastaDoProjeto\SampleGenerator\SampleGenerator\ o diretório para o % Program Files %\Microsoft Visual Studio 10.0\VSTSDB\Extensions\ CustomGenerators diretório criado.

    ObservaçãoObservação

    Uma prática recomendada é colocar seus assemblies de extensão em uma pasta na pasta %Program Files %diretório do \Microsoft Visual Studio 10.0\VSTSDB\Extensions. Essa estratégia irá ajudá-lo a identificar quais extensões foram incluídas com o produto e quais são suas criações personalizadas. Você também deve considerar a organização de suas extensões em pastas específicas da categoria.

Teste o gerador de endereços

Agora que você criou o gerador de dados de endereços, você deve iniciar uma nova instância do Visual Studio. Quando Visual Studio é iniciado, ele registrará o assembly de SampleGenerator que você adicionou ao % Program Files %diretório do \Microsoft Visual Studio 10.0\VSTSDB\Extensions\CustomGenerators. Você irá criar um projeto de banco de dados no qual você pode verificar que o gerador de dados está funcionando corretamente.

Para criar o projeto de banco de dados

  1. Iniciar uma nova instância de Visual Studio, que irá reconhecer o conjunto de SampleGenerator.dll e registrar o proprietário.

  2. Sobre o arquivo , aponte para novae clique em projeto.

    A caixa de diálogo New Project será exibida.

  3. Em Modelos instalados, expanda o banco de dados nó e clique o SQL Server nó.

  4. Na lista de modelos, clique em Projeto de banco de dados de 2008 do SQL Server.

  5. Em nome, digite SampleGeneratorDB.

    ObservaçãoObservação

    Se você já concluiu todas as etapas na Demonstra Passo a passo: Criando um gerador de dados personalizado para um teste de verificação, você criou o projeto de SampleGeneratorDB e você pode ir para a etapa 9.

  6. Selecione o Create directory for solution caixa de seleção.

  7. Aceite os valores padrão para local, Nome da solução, e Add to Source Controle em seguida, clique em OK.

  8. Clique em OK.

    O novo projeto de banco de dados, SampleGeneratorDB, aparece na Solution Explorer.

  9. Sobre o Exibir menu e clique Visualização do esquema de banco de dados.

    Modo de exibição do esquema será exibido se ela já não era visível.

Em seguida, você irá adicionar uma tabela simples para o projeto com uma única coluna com um tipo SQL varchar.

Para adicionar uma tabela para o projeto de banco de dados

  1. Em Visualização Esquema, expandir o SampleGeneratorDB nó, expanda o esquemas nó, expanda o dbo nó e clique o tabelas nó.

  2. No menu Project, clique em Add New Item.

    ObservaçãoObservação

    Você também pode direito no projeto SampleGeneratorDB na Visualização Esquema, aponte para Adde clique em tabela.

  3. Em modelos de, clique em tabela.

    ObservaçãoObservação

    No categorias lista, você pode clicar em tabelas e modos de exibição para encontrar mais facilmente o modelo para uma tabela.

  4. Em nome, digite os endereços como o nome que você deseja dar a nova tabela.

  5. Clique em Add para adicionar a tabela ao seu projeto de banco de dados.

    Solution Explorer mostra o novo arquivo para a tabela em seu projeto de banco de dados. Modo de exibição do esquema mostra o novo objeto de tabela. O Transact-SQL editor aparece e exibe a definição para sua nova tabela.

  6. No Transact-SQL editor, modifique a definição de tabela para coincidir com o exemplo a seguir:

    CREATE TABLE [dbo].[Addresses]
    (
    address varchar(100)
    )
    
  7. Sobre o arquivo menu, clique em Salvar Addresses.table.sql.

Com a tabela no lugar, agora você pode configurar o banco de dados para implantação.

Para definir as configurações de implantação do projeto

  1. Em Solution Explorer, clique em SampleGeneratorDB (o projeto, não é a solução).

  2. Sobre o projeto menu, clique em Propriedades de SampleGeneratorDB.

    Aparece a janela de propriedades do projeto.

    ObservaçãoObservação

    Você também pode direito SampleGeneratorDB em Solution Explorer e, em seguida, clique em Propriedades.

  3. Clique o Deploy guia.

  4. Em ação implantar, clique em criar um script de implantação (sql) e implantar banco de dados.

  5. Clique o Editar o botão para especificar a conexão de destino.

  6. Especifique as informações para se conectar ao servidor de banco de dados que você deseja implantar o banco de dados SampleGeneratorDB.

  7. Em Selecione ou digite um nome de banco de dados, digite SampleGeneratorDB.

  8. Clique em OK.

    Conexão de destino é preenchida com a seqüência de conexão. Observe que o Nome do banco de dados de destino for definido como SampleGeneratorDB.

  9. Aceite os valores padrão para as outras opções.

  10. Sobre o arquivo menu, clique em Salvar itens selecionados.

    As configurações de compilação do projeto são salvas.

Em seguida, você criará o projeto de banco de dados.

Para construir o projeto de banco de dados

  • Sobre o Build menu, clique em Build Solution.

    Compilações de seu projeto de banco de dados. Se for bem-sucedido, a mensagem "compilação com êxito" aparece na barra de status e resultados são exibidos na compilação do saída janela.

Em seguida, você implantará o projeto de banco de dados.

Para implantar o projeto de banco de dados para o servidor de banco de dados

  1. Em Solution Explorer, clique em SampleGeneratorDB (o projeto, não é a solução).

  2. Sobre o Build menu, clique em Implantar SampleGeneratorDB.

    Seu projeto de banco de dados é implantado usando a conexão que você especificou na configuração de compilação. A mensagem "Implantação bem-sucedida" aparece no status da barra e de saída janela.

Criando e configurando o plano de geração de dados

Em seguida, você criará o plano de geração de dados. O plano de geração de dados contém as informações sobre quais tabelas e colunas que você deseja preencher com dados. Para obter mais informações, consulte Como: Criar planos de geração de dados.

Para criar e configurar o plano de geração de dados

  1. Em Solution Explorer, selecione o Planos de geração de dados nó.

  2. No menu Project, clique em Add New Item.

  3. No categorias painel, clique em Planos de geração de dados.

  4. No modelos de painel, clique em O plano de geração de dados.

  5. No nome caixa de texto, digite SampleGenerator.dgen.

  6. Clique em Adicionar.

    O plano de geração de dados é criado. O plano de geração de dados é exibida.

    A janela de plano de geração de dados é dividida horizontalmente em dois painéis. O painel superior lista as tabelas que são definidas no esquema de projeto de banco de dados — neste caso, o dbo.Tabela de endereços. O painel inferior exibe os detalhes da coluna da tabela que está realçado no painel superior — neste caso, a coluna de endereço.

    ObservaçãoObservação

    Se o Visualização de geração de dados janela não estiver aberta, você poderá abri-lo abrindo a dados menu, apontando para O gerador de dadose, em seguida, clicando em Geração de dados da visualização. Por padrão, o Visualização de geração de dados janela é encaixada e com guias na parte inferior da janela de plano de geração de dados. Para expandir o seu modo de exibição, clique na janela e, em seguida, clique em Documento com guias sobre o janela menu. Você pode também com o botão direito na barra de título e, em seguida, clique em Dock como documento com guias.

  7. No criador de SampleGenerator.dgen, verifique se o dbo.Tabela de endereços e a coluna de endereço são verificados.

  8. No criador de SampleGenerator.dgen, selecione a coluna de endereço e clique no gerador lista suspensa para selecionar o AddressGenerator.

    O gerador de endereços personalizada agora está configurado corretamente.

  9. No menu File, clique em Save All.

Executando o plano de geração de dados para gerar dados de endereço

Finalmente, você irá executar o plano de geração de dados e ver seu gerador de dados de endereço personalizado em ação.

Para executar o plano para gerar dados

  1. Em Solution Explorer, clique em SampleGenerator.dgen.

    ObservaçãoObservação

    O plano de geração de dados também deve estar aberto. Se o plano não estiver aberto, abra-o pela primeira vez.

  2. Sobre o dados , aponte para Gerador de dadose em seguida, clique em Gerar dados.

    O Connect to Database caixa de diálogo aparece.

  3. No As informações de conexão de geração de dados , clique no banco de dados de SampleGeneratorDB e, em seguida, clique em OK.

  4. Clique em Sim quando for solicitado para limpar o conteúdo das tabelas antes de inserir novas linhas.

    Os dados são gerados. Na janela de preenchimento, a coluna de status é atualizada com o status da geração de dados. A barra de status resume a geração de dados para todas as tabelas.

  5. (Opcional) Use uma ferramenta diferente para fazer logon no banco de dados. Você pode usar o Transact-SQL que é fornecido no editor de Visual Studio Premium para esta etapa. Para obter mais informações, consulte edição de Scripts de banco de dados e objetos com o Editor do Transact-SQL no site da Microsoft.

  6. Exiba os novos dados, executando a consulta a seguir:

    use SampleGeneratorDB
    
    select * from dbo.Addresses
    

    O resultados guia deve exibir endereços com estado aleatório e valores do CEP.

Próximas etapas

Visual Studio Premiume Visual Studio Ultimate incluem o gerador de DateTime, que pode ser usado com colunas que tenham uma restrição de verificação que requer que uma data em um determinado intervalo, usando o gerador Min e Max propriedades. Em Demonstra Passo a passo: Criando um gerador de dados personalizado para um teste de verificação, você irá criar um gerador de dados personalizados para uma coluna com uma restrição de verificação que requer que uma data dentro de uma das duas faixas distintas.

Consulte também

Tarefas

Como: Registrar e gerenciar extensões de recurso

Como: Adicionar propriedades de entrada para um gerador de dados

Como: Adicionar propriedades de saída a um gerador de dados

Como: Criar geradores de dados personalizados

Demonstra Passo a passo: Criando e executando um plano de geração de dados

Referência

Microsoft.Data.Schema.Tools.DataGenerator

Conceitos

Estender os recursos de banco de dados de Visual Studio

Uma visão geral da extensibilidade do gerador de dados

Outros recursos

Editing Database Scripts and Objects with the Transact-SQL Editor

Gerenciando Assinatura de Assembly e Manifesto