Estoy tratando de Cambiar la clave Principal de una tabla a través de Entity Framework Core Migraciones:

protected override void Up(MigrationBuilder migrationBuilder)
{
        migrationBuilder.DropPrimaryKey(
            name: "PK_Permissions",
            table: "Permissions");
}

Cuando trato de actualizar la base de datos me sale el siguiente mensaje de error:

To change the IDENTITY property of a column, the column needs to be dropped and recreated.

¿Cómo puedo actualizar la base de datos?

  • No creo que las migraciones apoya esta especializada escenario. Usted tendrá que programar usted mismo.
  • lo que si te alejas de la primera columna? migrationBuilder.DropColumn( nombre: «Identificador», de esquema: «dbo», de la tabla: «Permisos»); migrationBuilder.DropPrimaryKey( nombre: «PK_Permissions», de la tabla: «Permisos»);
InformationsquelleAutor Alexander | 2017-05-05

4 Comentarios

  1. 2

    En el intento de obtener IdentityServer4 EF migraciones (SQLServer) he tenido este mismo problema. La Actualización De Microsoft.EntityFrameworkCore a v2.1.3 y Microsoft.EntityFrameworkCore.Herramientas para v2.1.3 parecía a solucionar el problema.

    • Estás de suerte. Tengo este error en el punto 2.2.4, la última versión de 2.2 – y no hay actualizaciones (
  2. 2

    Si no le importa acerca de su pasado migraciones, simplemente empezar de cero mediante la eliminación de todos sus migraciones. A continuación, volver a crear la primera con su nuevo esquema. Debería funcionar bien.

  3. 1

    Es siempre una arriesgada idea para manipular las migraciones…
    La forma más sencilla es limpiar la pizarra, si es posible:
    Tomar la tabla de la DBContext (este va a caer de la mesa)
    Crear la Migración y actualización de la base de datos
    Restauración de la tabla en el contexto y hacer los cambios.
    Crear la Migración y actualización de la base de datos.

    Obviamente, es necesario considerar la copia de seguridad y restauración de datos y restricciones…

Dejar respuesta

Please enter your comment!
Please enter your name here