none
Code first Entidades poco Propiedad id PK RRS feed

  • Pregunta

  • hola a todos estoy haciendo unas entidades poco, segui un manual que me dice que las debo crear asi.

    public class Catalogo
        {
            public int ?Id { get; set; }
            public TipoCatalogo TipoCatalogo { get; set; }
            public Categoria Categoria { get; set; }
            public string Descripcion { get; set; }
    
            public Catalogo()
            {
                this.TipoCatalogo = new TipoCatalogo();
                this.Categoria = new Categoria();
            }
        }

    el metodo constructor donde instancion a las propiedades de navegacion fue idea mia asi que no se si sea correcto. tambien puse las llaves foraneas como privadas, por que si tengo a la propiedad no vi la necesidad de verla si la optengo de la composicion.

    esas son dudas que tengo. pero la falla que me genera es esta cuando crea la base de datos si crea las llaves foraneas y las llaves primarias pero no las hace autoincrementales. como puedo ponerle que las haga autoincrementales.

    martes, 8 de enero de 2013 6:07

Todas las respuestas

  • porque aqui

    public int ?Id { get; set; }

    pones un signo de  ?

    el id nunca puede ser nulable


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 8 de enero de 2013 9:21
  • jejeje solo fue un error de dedo

    pero mi duda es como va a crear la base de datos en base a las entidades, cuando crea la tabla catalogo si me genera un campo id, pero no lo hace autoincrementable como en la base de datos deberia ser. como logro para que la propiedad id sea autoIncrementable

    public class Catalogo
        {
            public int Id { get; set; }
            public string Descripcion { get; set; }
            public int CategoriaId { get; private set; }
            public int TipoCatalogoId { get; private set; }
            
            //Propiedades de Navegacion
            public virtual Categoria Categoria { get; set; }
            public virtual TipoCatalogo TipoCatalogo { get; set; }
    
            public Catalogo()
            {
                this.TipoCatalogo = new TipoCatalogo();
                this.Categoria = new Categoria();
            }
        }

    debe ser auto incrementable en la base de datos.

    Tambien me suscede algo estraño la clase se llama Catalogo, y cuando me crea la tabla crea la tabla Catalogoes por ue le agrega el es.

    martes, 8 de enero de 2013 15:12
  • cuando crea la tabla catalogo si me genera un campo id, pero no lo hace autoincrementable como en la base de datos deberia ser

    podrias definir

    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    o quizas quieras aprender a definir con fluent (para mi es mucho mejor) usando la linea

    modelBuilder.Entity<Catalogo>().Property(e => e.Id).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    martes, 8 de enero de 2013 18:56