10

Estoy utilizando Entity Framework 4.3 Code First y probando la función Migrations.Cómo afectar el orden de las columnas con Entity Framework Code First Migrations

Si añado una nueva propiedad a mi clase y luego corro Añadir a la migración desde la ventana de la consola del gestor de paquetes me sale algo como esto:

public override void Up() 
    { 
     AddColumn("Products", "Discontinued", c => c.Boolean(nullable: false)); 
    } 

Me gustaría ser capaz de afectar a la orden del porque no quiero que se agregue a la tabla sino que se coloca en un índice específico. Pensé que podría ser capaz de agregarlo a la configuración de mi modelBuilder, algo así como:

Property(p => p.Discontinued).HasColumnOrder(2); 

pero el funcionamiento de actualización de base de datos no aparece para usarlo. ¿Se puede hacer esto como una migración?

+0

a) No hay manera de insertar en las columnas anteriores sin tener que hacer una gran cantidad de piratería informática, b) no debe ser mantener DEPRECATED datos en su base de datos mediante el uso de "eliminaciones automáticas": busque archivar datos obsoletos. –

+0

¿Cuál es el punto de tener columnas en la tabla de la base de datos en un orden específico? Es solo un almacenamiento de datos. –

+1

Solo por motivos estéticos, eso es todo. Puede especificarlo cuando la base de datos se crea con el generador de modelos, por lo que se preguntó si es posible al agregar una nueva columna como parte de una migración. No es gran cosa. – SteveB

Respuesta

5

Esto es solo una cuestión de funcionalidad faltante. SQL por sí mismo no se basa en ningún orden implícito de columnas (con algunas excepciones: ORDER BY, ...).

Ni SQL Server ni ORACLE tienen un comando SQL DDL directo (también conocido como ALTER TABLE...) para mover una columna.

Por lo tanto, no hay posibilidad de cambiar el orden sin un gran esfuerzo (vuelva a crear la tabla). Véase, por ejemplo

Cuestiones relacionadas