Como inserir valor Padrão

20/02/2012

0

Olá pessoal,

Estou aprendendo a usar o Entity Framework 4.1 com a linguagem C# usando o método CODE-FIRST.

Gostaria de saber como faço para colocar um valor padrão nas propriedades abaixo:

...
        //Aqui necessito colocar a data atual 
        public DateTime dtPublicacao { get; set; }

        //Aqui necessito colocar o valor padrão igual a TRUE       
        public bool Ativado { get; set; }
...



Abraços
Hugo

Hugo

Responder

Posts

20/02/2012

Rodrigo Odasaki

Não entendi muito bem sua pergunta.

Mas se você deseja definir um valor padrão para as propriedades sempre que for utilizá-las, poderá definir os valores no construtor da sua classe.

Na hora de persistir no banco, basta enviar o objeto para dar o SaveChanges().

É essa sua dúvida?
Responder

21/02/2012

Hugo

Olá Rodrigo,

Obrigado pela resposta.

Vou tentar explicar qual o objetivo quero atingir, por exemplo, quando vc cria um campo em uma tabela diretamente no seu banco de dados, você tem a possibilidade de setar aquele campo com um VALOR DEFAULT. Faço isso muito com datas, ou seja, eu crio um campo data na tabela e coloco como valor default a data atual do sistema.

Eu achei que com o ANNOTATIONS do .NET, eu conseguiria fazer isso.

No Java é possível faze-lo => @MyAnnotation(stringValue = Testing, intValue = 100)

Bom, vc me sugeriu outra forma, como eu sou iniciante em .NET, teria como vc me dar um exemplo?

Abs,
Responder

22/02/2012

Rodrigo Odasaki

Certo,

Eu também sou novo em .NET.
Deixa eu ver se seria isto.

Digamos, você tem um valor padrão em um campo na tabela.

Se for existir apenas um registro, você pode utilizar os métodos prontos do LINQ como o SingleOrDefault() a qual ele busca um valor único ou padrão.

Veja a consulta com lambda expressions utilizando o SingleOrDefault().

Onde o Container é o nome do meu .EDMX e cliente o nome da Tabela.

public Cliente VerificarValorPadrao()
{
   return Container.Cliente.Where(c => c.Propriedade.Equals(Valor)).SingleOrDefault();
}


Neste exemplo ele retorna um registro padrão para esta consulta.
Responder

22/02/2012

Joel Rodrigues

Bom, vamos lá... na dúvida, vejamos se pode ser isso:
no código que segue, declarei um atributo e uma propriedade do tipo DateTime. No get, se o valor do atributo for o valor padrão de um objeto DateTime(01/01/0001), significa que o valor da propriedade ainda não foi alterado e o retorno será a data atual. Caso já tenha sido atribuído um valor ao atributo, este é retornado normalmente.

class Cliente
{
private DateTime dataCadastro;

public DateTime DataCadastro
{
get { return dataCadastro==default(DateTime)?DateTime.Today:dataCadastro; }
set { dataCadastro = value; }
}
}
Responder

22/02/2012

Joel Rodrigues

outra forma seria a seguinte: ao declarar o atributo, já atribuir a ele o valor padrão, a menos que o valor da propriedade seja alterado, permanecerá o padrão especificado.

class Cliente
{
private DateTime dataCadastro = DateTime.Today;

public DateTime DataCadastro
{
get { return dataCadastro; }
set { dataCadastro = value; }
}
}

Boa sorte.
Responder

22/02/2012

Hugo

Olá Rodrigo e Joel,

Rodrigo valeu pela dica, será de grande valia pra mim.

Joel, muito obrigado mesmo, era isso que eu queria, ao criar a propriedade já colocar um valor padrão pra ela, até porque estou querendo que minha aplicação trabalhe como hibernate, ou seja, criará o banco de dados automaticamente se ele não existir. Neste caso, eu tenho alguns campos que serão criados já contendo um valor padrão no banco de dados.


Forte abraço aos colegas e muito obrigado

Responder

22/02/2012

Rodrigo Odasaki

Beleza,

Vale também a do Joel, mas achei que o valor padrão viria sempre do banco, por isso não dei um exemplo em tratar no get da propriedade.

Abraços.
Responder

22/02/2012

Joel Rodrigues

Opa, ficamos felizes por ter ajudado.
Só mais um detalhe: caso você opte por desenhar as classes visualmente, no diagrama do EDMX, existe lá a possibilidade de definir o valor padrão para as propriedades.

Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar