Passo a passo: Adicionando a validação às classes de entidade
Validar dados é o processo que confirma que os valores inseridos em objetos de dados estão de acordo com as restrições do esquema de um objeto, além das regras estabelecidas para seu aplicativo. Validar dados antes de enviar atualizações para o base de dados subjacente é uma boa prática que reduz erros e o número potencial de processamentos entre um aplicativo e o base de dados.
Designer Relacional de Objetos fornece os métodos parciais que permitem aos usuários para estender o código gerado por que executa durante, inserções, atualizações e exclusões de entidades completos, e também durante e após a coluna individual é alterada.
Essa explicação fornece instruções passo a passo para adicionar validação para a entidade de LINQ to SQL [wd_LINQSQL] classe e expande sobre o tópico de Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos) .
Nessa explicação passo a passo, você aprenderá a executar as seguintes tarefas:
Adicionar validação para alterações aos dados em uma coluna específica.
Adicionar validação para atualizações a uma entidade completo.
Pré-requisitos
Para concluir esta explicação passo a passo, você precisará do seguinte:
O projeto criado em Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos).
Acesso ao banco de dados de exemplo Northwind. Para obter mais informações, consulte Como instalar bancos de dados de exemplo.
Dica
Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Customizing Development Settings in Visual Studio.
Abrir a solução de ORDesignerWalkthrough
Para abrir a solução de ORDesignerWalkthrough
No menu de Arquivo , aponte para Abrir, clique Projeto/soluçãoe em seguida, navegue até o local do arquivo de ORDesignerWalkthrough.sln.
Dica
O arquivo de ORDesignerWalkthrough.sln é criado no tópico de Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos) e é um pré-requisito para concluir essa explicação passo a passo.Conclua o tópico de Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos) , salvar a solução quando tiver terminado, se ainda não tiver feito isso.
Adicionar validação para alterações ao valor em uma coluna específica
Nesta parte da explicação, você adicionará lógica de validação à coluna datadeentrega de um pedido. Você adicionará código para verificar que o Datadeentrega é anterior do dia atual. Porque a validação é executada na definição de classe real (em vez de na interface do usuário) será lançada uma exceção se o valor a validação falha.
Para validar dados durante o valor de uma coluna alterar
Abra o arquivo de Northwind.dbml em Designer Relacional de Objetos. (Clique duas vezes no arquivo Northwind.dbml no Gerenciador de Soluções.)
Como você está adicionando validação a Entrega de um pedido, clique com o botão direito do mouse na classe de ordem no designer e clique Exibir Código.
O editor de códigos abre com uma classe parcial para ordem.
Coloque o cursor na classe parcial do pedido.
Para projetos do Visual Basic:
Expanda a lista de Nome do Método (a caixa de combinação com (Declarações)).
Clique OnRequiredDateChanging.
Um método de OnRequiredDateChanging é adicionado à classe parcial do pedido.
Adicione o seguinte código no método de OnRequiredDataChanging para garantir que o valor inserido para o Datadeentrega não é anterior à data atual:
If value.HasValue Then If value < Today Then Throw New Exception("Required Date cannot be in the past") End If End If
Para projetos C#:
Adicione o seguinte código à classe parcial do pedido para garantir que o valor inserido para o Datadeentrega não é anterior à data atual:
partial void OnRequiredDateChanging(System.DateTime? value) { if (value < System.DateTime.Today) { throw new System.Exception("Required Date cannot be in the past"); } }
Testando o aplicativo
Testar validação lógica requer executar o aplicativo e inserir os valores que fará com que a validação falhar.
Para testar o aplicativo
Pressione F5.
Na grade que exibe os pedidos, altere Entrega de um pedido a uma data antes da data atual e navegar informal para aceitar a alteração.
O novo valor faz com que a validação falhar, e a exceção é lançada como esperado.
Feche o formulário. (Pare a depuração.)
Ao manipular o erro de validação no DataGridView
Testar o aplicativo resultou em uma mensagem de erro do DataGridView que instrui desenvolvedores para manipular o evento de DataError . O procedimento a seguir mostra como manipular esse evento.
Para manipular o erro de validação no DataGridView
Abra o Form1 no Editor de Códigos.
OrdersDataGridView.
Crie um manipulador de eventos para o evento DataError.
Adicione código para exibir o erro. O manipulador de eventos parece com o seguinte:
Private Sub OrdersDataGridView_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles OrdersDataGridView.DataError MessageBox.Show(e.Exception.Message) End Sub
private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e) { MessageBox.Show(e.Exception.Message); }
Adicionar validação para atualizações para uma classe de entidade
Além de verificar valores durante alterações, você pode validar dados quando é feita uma tentativa de atualizar uma classe completa de entidade. A validação durante uma atualização tentada permite a comparação de valores em várias colunas se as regras comerciais exigem esta. Por exemplo, o procedimento a seguir mostra como validar que o transitário correto é usado se o frete é menor que um limite definido.
Para validar dados durante uma atualização para uma entidade
Abra o arquivo de Northwind.dbml em Designer Relacional de Objetos. (Clique duas vezes no arquivo Northwind.dbml no Gerenciador de Soluções.)
Como você está adicionando validação à atualização de uma classe de ordem completo, os métodos parciais que você precise acessar estão localizados na classe gerada de DataContext (NorthwindDataContext.) Clique com o botão direito do mouse em uma área vazia em object relational Designer de Objetos e clique Exibir Código.
O editor de códigos abre na classe parcial para o NorthwindDataContext.
Coloque o cursor na classe parcial NorthwindDataset.
Para projetos do Visual Basic:
Expanda a lista de Nome do Método (a caixa de combinação com (Declarações)).
Clique UpdateOrder.
Um método de UpdateOrder é adicionado à classe parcial de NorthwindDataContext.
Enviar o federal não transmite se o valor de Carga é menor que 10. Portanto, adicione o seguinte código no método UpdateOrder para garantir que o valor inserido para ShipVia não é Enviar federal se o valor de Carga é menor que 10:
If (instance.ShipVia = 3) And (instance.Freight < 10) Then Dim ErrorMessage As String = "Federal Shipping " & _ "does not deliver for less than 10. " & _ "You must use a different shipper." Throw New Exception(ErrorMessage) End If
Para projetos C#:
Adicione o seguinte código à classe parcial de NorthwindDataContext para garantir que o valor inserido para ShipVia não é Enviar federal se o valor de Carga é menor que 10:
partial void UpdateOrder(Order instance) { if ((instance.ShipVia == 3) && (instance.Freight < 10)) { string ErrorMessage = "Federal Shipping " + "does not deliver for less than 10. " + "You must use a different shipper."; throw new System.Exception(ErrorMessage); } }
Testando o aplicativo
Para testar a lógica de validação, execute o aplicativo e insira valores que fará com que a validação falhar.
Para testar o aplicativo
Pressione F5.
Na grade que exibe os pedidos, localize um registro para que ShipVia é 3. Alterar Carga a 5 e navegar informal para aceitar a alteração.
Como validação não é executada até que o registro é enviado a verdade para atualização, a validação ainda não falhar.
Clique no botão de Salvar no formulário.
Neste ponto a validação falha e a exceção é lançada.
Feche o formulário. (Pare a depuração.)
Próximas etapas
Dependendo dos requisitos de aplicativo, há várias etapas que você pode querer fazer depois de adicionar validação a classes de entidade de LINQ to SQL . Você pode fazer o seguinte aperfeiçoamento para este aplicativo:
- Crie mais consultas LINQ para classificação e filtrar os dados. Para obter informações, consulte LINQ em consultas SQL.
Consulte também
Tarefas
Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)
Conceitos
Outros recursos
Designer Relacional de Objetos
Novidades para desenvolvimento de aplicativos de dados no Visual Studio 2012