Compartilhar via


Adicionar validação a classes de entidade

Observação

A DataSet classe e as classes relacionadas são tecnologias herdadas do .NET Framework do início dos anos 2000 que permitem que os aplicativos trabalhem com dados na memória enquanto os aplicativos são desconectados do banco de dados. As tecnologias são especialmente úteis para aplicativos que permitem que os usuários modifiquem dados e persistam as alterações no banco de dados. Embora os conjuntos de dados sejam uma tecnologia comprovadamente bem-sucedida, a abordagem recomendada para novos aplicativos .NET é usar o Entity Framework Core. O Entity Framework fornece uma maneira mais natural de trabalhar com dados tabulares como modelos de objeto e tem uma interface de programação mais simples.

Validar classes de entidade é o processo de confirmar que os valores inseridos em objetos de dados estão em conformidade com as restrições no esquema de um objeto e também com as regras estabelecidas para o aplicativo. Validar dados antes de enviar atualizações para o banco de dados subjacente é uma boa prática que reduz erros. Também reduz o número potencial de viagens de ida e volta entre um aplicativo e o banco de dados.

As ferramentas LINQ to SQL no Visual Studio fornecem métodos parciais que permitem aos usuários estender o código gerado pelo designer que é executado durante Inserções, Atualizações e Exclusões de entidades completas e também durante e após alterações de coluna individuais.

Observação

Este tópico fornece as etapas básicas para adicionar validação a classes de entidade usando o Designer O/R. Como pode ser difícil seguir essas etapas genéricas sem se referir a uma classe de entidade específica, um passo a passo que usa dados reais é fornecido.

Adicionar validação para alterações ao valor em uma coluna específica

Este procedimento mostra como validar dados quando o valor em uma coluna é alterado. Como a validação é executada dentro da definição de classe (em vez de na interface do usuário), uma exceção é gerada se o valor faz com que a validação falhe. Implemente o tratamento de erros para o código em seu aplicativo que tenta alterar os valores da coluna.

Observação

As instruções neste artigo ilustram a versão mais recente da IDE (experiência de desenvolvimento interativo) disponível no Visual Studio. Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário. Você pode estar usando uma versão diferente do Visual Studio ou configurações de ambiente diferentes. Para obter mais informações, consulte Personalizar o IDE.

Para validar dados durante a alteração de valor de uma coluna

  1. Abra ou crie um novo arquivo LINQ to SQL Classes (.dbml arquivo) no O/R Designer. (Clique duas vezes no .dbml arquivo no Gerenciador de Soluções.)

  2. No Designer O/R, clique com o botão direito do mouse na classe para a qual você deseja adicionar validação e selecione Exibir Código.

    O Editor de Código é aberto com uma classe parcial para a classe de entidade selecionada.

  3. Coloque o cursor na classe parcial.

  4. Para projetos do Visual Basic:

    1. Expanda a lista Nome do Método .

    2. Localize o método OnCOLUMNNAMEChanging para a coluna à qual você deseja adicionar validação.

    3. Um OnCOLUMNNAMEChanging método é adicionado à classe parcial.

    4. Adicione o código a seguir para verificar primeiro se um valor foi inserido e, em seguida, para garantir que o valor inserido para a coluna seja aceitável para seu aplicativo. O value argumento contém o valor proposto, portanto, adicione lógica para confirmar se ele é um valor válido:

      If value.HasValue Then
          ' Add code to ensure that the value is acceptable.
          ' If value < 1 Then
          '    Throw New Exception("Invalid data!")
          ' End If
      End If
      

    Para projetos em C#:

    Como os projetos C# não geram automaticamente manipuladores de eventos, você pode usar o IntelliSense para criar os métodos parciais de alteração de coluna. Digite partial e, em seguida, um espaço para acessar a lista de métodos parciais disponíveis. Clique no método de alteração de coluna para a qual você deseja adicionar validação. O código a seguir se assemelha ao código gerado quando você seleciona um método parcial de alteração de coluna:

    partial void OnCOLUMNNAMEChanging(COLUMNDATATYPE value)
        {
           throw new System.NotImplementedException();
        }
    

Adicionar validação para atualizações a uma classe de entidade

Além de verificar valores durante as alterações, você também pode validar dados quando é feita uma tentativa de atualizar uma classe de entidade completa. A validação durante uma tentativa de atualização permite comparar valores em várias colunas se as regras de negócios exigirem isso. O procedimento a seguir mostra como validar quando é feita uma tentativa de atualizar uma classe de entidade completa.

Observação

O código de validação para atualizações para concluir classes de entidade é executado na classe parcial DataContext (em vez de na classe parcial de uma classe de entidade específica).

Para validar dados durante uma atualização para uma classe de entidade

  1. Abra ou crie um novo arquivo de classes de LINQ to SQL (arquivo .dbml) no Designer Relacional de Objetos. (Clique duas vezes no .dbml arquivo no Gerenciador de Soluções.)

  2. Clique com o botão direito do mouse em uma área vazia no Designer O/R e clique em Exibir Código.

    O Editor de Código é aberto com uma classe parcial para o DataContext.

  3. Coloque o cursor na classe parcial para DataContext.

  4. Para projetos do Visual Basic:

    1. Expanda a lista Nome do Método .

    2. Clique em UpdateENTITYCLASSNAME.

    3. Um UpdateENTITYCLASSNAME método é adicionado à classe parcial.

    4. Acesse valores de coluna individuais usando o instance argumento, conforme mostrado no seguinte código:

      If (instance.COLUMNNAME = x) And (instance.COLUMNNAME = y) Then
          Dim ErrorMessage As String = "Invalid data!"
          Throw New Exception(ErrorMessage)
      End If
      

    Para projetos em C#:

    Como os projetos C# não geram automaticamente manipuladores de eventos, você pode usar o IntelliSense para criar o método parcial UpdateCLASSNAME . Digite partial e, em seguida, um espaço para acessar a lista de métodos parciais disponíveis. Clique no método de atualização da classe na qual você deseja adicionar a validação. O código a seguir se assemelha ao código gerado quando você seleciona um UpdateCLASSNAME método parcial:

    partial void UpdateCLASSNAME(CLASSNAME instance)
    {
        if ((instance.COLUMNNAME == x) && (instance.COLUMNNAME = y))
        {
            string ErrorMessage = "Invalid data!";
            throw new System.Exception(ErrorMessage);
        }
    }