none
el entity framework no me genera el mapeo en las clases RRS feed

  • Pregunta

  • Hola como andan? necesito una mano

    tengo un tema con el entity framework, realice el modelo, todo ok eso, genere la base de datos a partir del modelo, todo ok

    PERO en las clases de las entidades que me genera, (en las partial) no me da el mapeo, osea ,me tendria que mostrar algo asi:

        

    public abstract partial class PersonaAutorizada
        {
            [Key]
            public int legajo { get; set; }
            public string clave { get; set; }
            public string tipoUsuario { get; set; }
            public string Email { get; set; }

            public virtual Rol Rol { get; set; }
        }

    pero NO

    me lo pone sin el 

         

            [Key]

    EL TEMA ES QUE ESTO ME GENERA ERRORES, Y PONERSELO A MANO A 40 CLASES ES UN HUEVO, SIN TENER NE CUENTA QUE LA BASE SE VA ACTUALIZANDO

    cual es el problema? alguien tiene una idea?

    martes, 9 de agosto de 2016 3:21

Todas las respuestas

  • El truco está en que los campos clave terminen en ID, por ejemplo, LegajoID en lugar de Legajo. Entonces te lo toma como clave de forma predeterminada. Si no sigues la nomenclatura, entonces tienes que indicarle a Entity Framework cuáles son los campos clave. Si usas Code-First, lo haces escribiendo [Key] cuando escribes el código fuente de cada clase. Si usas Model-First, se pone en la ventanita de Propiedades cuando estás dibujando el modelo. Y si usas Database first, entonces si el campo es clave en la BD de la que partes, te lo traslada automáticamente al código autogenerado.
    martes, 9 de agosto de 2016 6:16
  • ante todo, gracias por tu respuesta.

    use model fitst, como dije "genere la base a partir del modelo" pero ahora entiendo, tendria que haber llamado legajoId la propiedad, 

    y para el caso de las relaciones? tambien las tengo que hacer a mano? o hay una nomenclatura especial para ponerle, y que las genere el entity framework? porque las relaciones en el codigo tmp me aparecen


    • Editado martiDevo martes, 9 de agosto de 2016 15:48
    martes, 9 de agosto de 2016 14:20
  • Las relaciones en "model first" se pintan en el diseñador del modelo. Unes las tablas con "flechitas" y en las Propiedades les indicas el tipo (p.ej., si es de uno a muchos cuál es el lado de 1 y cuál el de muchos). Con eso, al crear la base de datos le pone los Foreign Keys que se infieran de las propiedades que asignaste en el diseñador.
    martes, 9 de agosto de 2016 18:05
  • buenas, gracias por responder de nuevo.

    si amigo, todo eso esta hecho, genere la base a partir del modelo, pero me tira errores cuando quiero crear un abm de una entidad de que no defini las key .... wtf, porque? si las tengo definidias.

    ademas de eso las "partial" class que me genera de mis entidades, no tienen puesto las lineas "  [Key]" entonces cuando quiero crear un new scallfolded item, de una entidad, me enlista todas las entidades que no tienen definidas las key, pero COMO, si si lo estan, hasta la base esta creada!

    martes, 9 de agosto de 2016 18:38
  • descubri que al cread el new scallfolded item , me da este error SOLO CUANDO TRATO DE CREARLO A PARTIR DE UNA CLASE QUE HEREDA DE OTRA.

    el error es este 

    there was an error running the selected code generator unable to retrieve metadata for

    y acontinuacion me muestra las entidades que supuestamente no tienen key asignada, cosa erronea.

    y como dije, al crear el new scallfolded item con una entidad suelta, lo crea, pero al tratar de crearlo con herencia no.., 

    alguien tiene idea?


    • Editado martiDevo martes, 9 de agosto de 2016 19:12
    martes, 9 de agosto de 2016 19:11