A Validação de Dados com Linq é na verdade uma verificação de que os valores inseridos nos objetos de dados estão em conformidade com a estrutura e esquema do objeto, além de prevenir e viabilizar a realização de validações especificas de sua aplicação no objeto.

Além de prevenir erros, a validação de dados reduz requisições no Banco de Dados uma vez que a validação é efetuada na aplicação antes de sua atualização de fato no Banco.

Criando a Validação

Iremos trabalhar com a classe tbClientes, que possui apenas duas propriedades (codCliente e nome).

Vamos criar uma classe parcial da tbClientes para podermos extende-la e em seguida iniciar a criação de um método parcial e sem retorno (void), se observarmos, é apresentado uma sugestão dos métodos de validação que podemos criar:

Imagem 1

Escolhendo o método OnnomeChanging podemos validar a alteração da propriedade nome, vamos inserir a seguinte validação:

public partial class tbClientes
{
    partial void OnnomeChanging(string value)
    {
        if (value.Contains("#"))
            throw new Exception("ERRO DE VALIDAÇÃO");
    }
}

Ou seja, se o novo valor da propriedade nome possuir o caracter "#" será disparada uma Exceção. Vamos testar:

//Instância do DataContext
SerieLinqDB _db = new SerieLinqDB();
 
//Instância do objeto Cliente
Cliente cliente = (from c in _db.Clientes where c.codCliente == 1 select c).First();
 
try
{
    cliente.nome = "Rafael#Zaccanini";
    _db.SubmitChanges();
}
catch (Exception erro)
{
    Console.WriteLine(erro.Message);
}

Quando executamos o código acima podemos observar que é disparada a exceção e exibido o erro:

Imagem 2

Com isso podemos realizar validações em qualquer propridade de nosso objeto, assim como podemos também definir se desejamos validar antes ou depois das alterações serem submetidas ao Banco de Dados.


Rafael Zaccanini
MTAC – Microsoft Technical Audience Contributor

Blog: http://www.rafaelzaccanini.net
Twitter: 
@rafaelzaccanini
Facebook: http://www.facebook.com/RafaelZaccaniniNet