none
Determinar o tamanho do campo no meu BD RRS feed

  • Pergunta

  • Se eu usar o EF para gerar o meu BD a partir de classes POCO, como eu determino o tamanho do campo, caso eles seja string. Por exemplo, veja essa classe:

    [code]
    [Table("Usuario")]
        public class Usuario
        {
            [Key, DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
            public int ID_Usuario { get; set; }

            [Required(ErrorMessage = "Usuário é obrigatório")]
            public string NM_Usuario { get; set; }

            [Required(ErrorMessage = "Senha é obrigatório")]
            public string Senha { get; set; }

            [Required(ErrorMessage = "Tipo de usuário é obrigatório")]
            public string Tipo_Usuario { get; set; }
        }[/code]

    No campo Tipo, eu gostaria que tivesse o tamanho de 1(um) caracter e senha tamanho 8, por exemplo. Como eu faria isso, usando o EF para gerar essa "Tabela" no meu BD?

    segunda-feira, 26 de agosto de 2013 22:27

Respostas

  • Ai você não coloca os (MinLength e MaxLength) que ai fica o padrão do banco que seria esse varchar(max).

    Fúlvio Cezar Canducci Dias

    • Marcado como Resposta pnet quarta-feira, 28 de agosto de 2013 10:24
    quarta-feira, 28 de agosto de 2013 01:02

Todas as Respostas

  • Ficaria mais ou menos assim:

    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    namespace Classes
    {
        [Table("Usuario")]
        public class Usuario
        {
            [Key]
            [DatabaseGenerated(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.Identity)]
            public int ID_Usuario { get; set; }
    
            [Required(ErrorMessage = "Usuário é obrigatório")]
            public string NM_Usuario { get; set; }
    
            [Required(ErrorMessage = "Senha é obrigatório")]
            [MinLength(8,ErrorMessage="Mínimo de 8 caracteres")]
            [MaxLength(8, ErrorMessage="Máximo de 8 caracteres")]
            public string Senha { get; set; }
    
            [Required(ErrorMessage = "Tipo de usuário é obrigatório")]
            [MinLength(1, ErrorMessage = "Mínimo de 1 caracter")]
            [MaxLength(1, ErrorMessage = "Máximo de 1 caracter")]
            public string Tipo_Usuario { get; set; }
        }
    }

    Ai eu não sei se você vai obrigar ter 8 caracteres na senha com no minimo 8 também ai você altera isso!


    Fúlvio Cezar Canducci Dias

    segunda-feira, 26 de agosto de 2013 23:11
  • Flávio entendi e ok, nessa parte. Me desculpe mais uma vez, mas e se eu quiser usar o varchar(max)?
    segunda-feira, 26 de agosto de 2013 23:49
  • Ai você não coloca os (MinLength e MaxLength) que ai fica o padrão do banco que seria esse varchar(max).

    Fúlvio Cezar Canducci Dias

    • Marcado como Resposta pnet quarta-feira, 28 de agosto de 2013 10:24
    quarta-feira, 28 de agosto de 2013 01:02