none
Como definir valores nulos para campos do banco com entity framework RRS feed

  • Pergunta

  • Olá pessoal estou de volta ao mundo .Net, depois de programar alguns anos em ruby on rails estou dando uma olhada no Asp MVC.

    Estou usando o asp.net MVC 3 com o Entity Framework e estou a seguinte dúvida, tenho uma classe Usuario.

        public class Usuario
        {
            public int ID { get; set; }
            public string nome { get; set; } 
            public string nome_usuario { get; set; }
            public int celular { get; set; } // essa eu queria que fosse null mas no banco fica not null
            public DateTime data_nascimento { get; set; } // essa eu queria que fosse null mas no banco fica not null
            public string email { get; set; }
            public string chave { get; set; }
            public string hash { get; set; }
            public int numero_logradouro { get; set; }
        }

    nessa classe eu queria definir algumas propriedades como valores null e outras com valor not null isto no banco.

    mas não estou conseguindo, quando o scaffold é gerado só os valores int e datetime ficam not null.

    como faço para todos ficarem not null ou o contrario todos ficarem null?

     



    sexta-feira, 6 de abril de 2012 20:38

Respostas

Todas as Respostas

    • Editado rs.developer sexta-feira, 6 de abril de 2012 22:01
    • Marcado como Resposta edivandecastro sábado, 7 de abril de 2012 01:26
    sexta-feira, 6 de abril de 2012 21:20
  • Cara muito massa.

    Entendi completamente. Com um pouco de estudo cheguei as seguintes conclusões:

    Como C# é fortemente tipado certos tipos de dados não podem receber valores nulo como é o caso das propriedades do tipo int e DateTime, para que se possar atribuir um valor nulo a uma propriedade deste tipo deve-se colocar um "?" no final do tipo(Nullable Types). Como minha classe tinha algumas propriedades do tipo int e DateTime o Entity Framework criou colunas para receber esses valores que não poderiam receber valores nulos. Ele fez isso para que ao recuperar os dados no banco não houve-se problema na hora de atribuir os valores pois caso fosse possível persistir valores nulos nessas colunas iria dar um erro na hora de recuperar os valores, pois estaria atribuindo valores nulos as propriedades que não podem receber valores nulos, então o framework manteve a integridade na minha aplicação. Então se mesmo assim quiser persistir dados nulos? eu simplesmente coloco "?" no final do tipo da propriedade desta forma: public int? celular { get; set; }.

    Agora e as propriedades que podem receber valores nulos e eu não quero que isso aconteça? então uso o DataAnnotations desta forma:

    [Required(AllowEmptyStrings=false)]
    public string nome_usuario { get; set; }

    Opa já da pra escrever um livro. kkkkkkkkkk

    valeu cara obrigado pela ajuda.

    sábado, 7 de abril de 2012 01:10