supondo a classe:
public class Cliente
{
public string Nome { get; set; }
public DateTime DataCriacao { get; set; }
public int UsuarioCriacao { get; set; }
public DateTime DataAlteracao { get; set; }
public int UsuarioAlteracao { get; set; }
public Cliente(string nome)
{
Nome = nome;
}
}
1- todos os campos são obrigatórios, porém DataCriacao, UsuarioCriacao, DataAlteracao, UsuarioAlteracao não podem ser informados pelo usuário do sistema.
2- quando se está inserindo um novo cliente, todos os campos devem ser informados
quando se está alterando um cliente, o campos DataCriacao e UsuarioCriacao não podem ser preenchidos/alterados
3- atualmente, em outra classe, antes de gravar no banco de dados, eu verifico se o cliente esta sendo inserido ou alterado.
se estiver inserindo, eu informo os campos de data e usuario de criação e alteração
se estiver alterando, eu informo apenas os campos de data e usuario de alteração.
ocorre que se na classe que grava no banco de dados, for esquecido de informar os campos de data e usuario de criação e alteração, os dados ficarão "inconsistentes".
teria algua forma de evitar isso?!
talvez fazer dois construtores, um para inserção e outro para alteração ?!