Entity Framework 7: un tipo anónimo no puede tener varias propiedades con el mismo nombre

entity-framework entity-framework-core

Pregunta

En el pasado he tenido problemas ( 1 , 2 , 3 ) con Entity Framework al cambiar entre las máquinas de desarrollo, por lo que quería hacer que algo más sencillo funcionara con Entity Framework 7 RC1 Update 1 para ver si las cosas eran más fáciles.

Copié una base de datos de Azure localmente y luego usé el comando DNX

dnx ef dbcontext scaffold "Server=MYDESK;Database=mydatabase;Trusted_Connection=True;" EntityFramework.MicrosoftSqlServer --outputDir Models

Esto creó las clases de modelo de datos y la clase de contexto. Lo comprobé y ahora he cambiado a otra máquina y he comprobado el código. En la nueva máquina no puede generar un error en el código generado por Entity Framework 7:

dnx ef dbcontext scaffold "Server=MYDESK;Database=mydatabase;Trusted_Connection=True;" EntityFramework.MicrosoftSqlServer --outputDir Models

El error de compilación, en esa última línea, es "Un tipo anónimo no puede tener varias propiedades con el mismo nombre". ¿Por qué Entity Framework 7 genera código que no se compilará y cómo lo arreglo?

Respuesta aceptada

Parece que este es un error conocido: el andamio de SQL Server genera tipos anónimos no válidos para los índices (rc1-final) # 3847 , causados ​​por la "combinación de índices que tenían el mismo nombre pero estaban en diferentes tablas". Se ha corregido en compromisos más recientes con el hito Entity Framework 7 RC2 ( hoja de ruta ).


Respuesta popular

El error es claro ... no puede tener varias propiedades con el mismo nombre ... Cambie su última línea a continuación:

    entity.HasIndex(e => new { 
                     CreatedAt = e.CreatedAt, 
                     Name2 = e.CreatedAt, 
                     Name3 = e.CreatedAt, 
                     Name4 = e.CreatedAt }).HasName("IX_CreatedAt");



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué