Error al implementar SQL Azure utilizando el código EF 6 alpha3 primero y las migraciones al crear la tabla __MigrationHistory

azure-sql-database entity-framework entity-framework-6

Pregunta

Estoy usando el código EF 6 alfa 3 primero. Cuando intento crear la base de datos en SQL Azure ejecutando el comando Actualizar base de datos, aparece el siguiente error:

Las tablas sin un índice agrupado no son compatibles con esta versión de SQL Server. Cree un índice agrupado y vuelva a intentarlo.

Busqué el error en el comando __MigrationHistory table creation sql.

CREATE TABLE [dbo].[__MigrationHistory] (
    [MigrationId] [nvarchar](255) NOT NULL,
    [ContextKey] [nvarchar](512) NOT NULL,
    [Model] [varbinary](max) NOT NULL,
    [ProductVersion] [nvarchar](32) NOT NULL,
    CONSTRAINT [PK_dbo.__MigrationHistory] PRIMARY KEY NONCLUSTERED ([MigrationId], [ContextKey])
)

¿Alguien tiene alguna idea de cómo puedo solucionar este problema?

Gracias,

Respuesta aceptada

Este es un error en Alpha 3 - Disculpe las molestias.

Hay una solución bastante fácil:

1) Crear un generador de SQL de migración personalizado:

public class AzureSqlGenerator : SqlServerMigrationSqlGenerator
{
    protected override void Generate(CreateTableOperation createTableOperation)
    {
        if ((createTableOperation.PrimaryKey != null)
            && !createTableOperation.PrimaryKey.IsClustered)
        {
            createTableOperation.PrimaryKey.IsClustered = true;
        }

        base.Generate(createTableOperation);
    }
}

2) Registre el generador personalizado en su configuración de migraciones:

public class AzureSqlGenerator : SqlServerMigrationSqlGenerator
{
    protected override void Generate(CreateTableOperation createTableOperation)
    {
        if ((createTableOperation.PrimaryKey != null)
            && !createTableOperation.PrimaryKey.IsClustered)
        {
            createTableOperation.PrimaryKey.IsClustered = true;
        }

        base.Generate(createTableOperation);
    }
}



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é