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,
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:
internal sealed class Configuration : DbMigrationsConfiguration<MyContext>
{
public Configuration()
{
AutomaticMigrationsEnabled = true;
SetSqlGenerator("System.Data.SqlClient", new AzureSqlGenerator());
}
protected override void Seed(MyContext context)
{
}
}