Padrões de design de validação de dados

Se eu tiver uma coleção de tabelas de banco de dados (em um arquivo do Access, por exemplo) e precisar validar cada tabela nesta coleção em relação a um conjunto de regras que possua regras comuns em todas as tabelas, bem como regras individuais específicas para um ou um subconjunto de tabelas, alguém pode recomendar um bom padrão de design para analisar?

Especificamente, gostaria de evitar código semelhante a:

void Main()
{
    ValidateTable1();
    ValidateTable2();
    ValidateTable3();
}

private void ValidateTable1()
{
    //Table1 validation code goes here
}

private void ValidateTable2()
{
    //Table2 validation code goes here
}

private void ValidateTable3()
{
    //Table3 validation code goes here
}

Além disso, decidi usar o log4net para registrar todos os erros e avisos, para que cada método possa ser declaradovoid e não precisa retornar nada. Esta é uma boa ideia ou seria melhor criar algum tipo deValidationException que captura todas as exceções e as armazena em umList<ValidationException> antes de imprimi-los todos no final?

Eu encontreiesta, que parece funcionar, mas espero encontrar alguns exemplos de código para trabalhar. Alguma sugestão? Alguém já fez algo semelhante no passado?

Para alguns antecedentes, o programa será gravado em C # ou VB.NET e as tabelas provavelmente serão armazenadas no Access ou no SQL Server CE.

questionAnswers(5)

yourAnswerToTheQuestion