5 votes

Code First Migrations in SQL Azure - Les tables sans index en grappe ne sont pas prises en charge

Je n'arrive pas à faire en sorte que ma migration Code-First crée ma base de données SQL Azure.

Il ne cesse de se plaindre de l'absence de prise en charge par SQL Azure des tables sans index en grappe et je ne trouve pas de solution pour créer ma base de données.

Nota: J'utilise CreateDatabaseIfNotExists pour créer les tables de suivi des modifications lors de la première création de la base de données, car apparemment DropCreateDatabaseIfModelChanges ne fait pas ça pour vous

    public partial class IUnityDbContext : DbContext
    {
        public IUnityDbContext()
            : base("Name=IUnityDbContext")
        {
            Database.SetInitializer(new CreateDatabaseIfNotExists<IUnityDbContext>()); 
            //Database.SetInitializer(new DropCreateDatabaseIfModelChanges<IUnityDbContext>());
        }

        public DbSet<User> Users { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new UserMap());

            base.OnModelCreating(modelBuilder);
        }
    }

    public partial class Initial : DbMigration
    {
        public override void Up()
        {
            CreateTable(
                "dbo.Users",
                c => new {
                        ... 
                     }
            ).PrimaryKey(u => u.UserId, clustered: true);            
        }

        public override void Down()
        {
            DropTable("dbo.Users");
        }
    }

Si j'essaie de "mettre à jour la base de données", j'obtiens

 Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.

La base de données n'est pas créée.

UPDATE : Je suis parti de zéro et j'ai suivi ce guide pour activer les migrations automatiques (j'ai supprimé la base de données et commencé avec une base inexistante pour ne pas avoir à supprimer le code Up/Down de la migration initiale).

Cette fois-ci, ma base de données a été créée avec succès (je n'étais pas arrivé à ce stade auparavant) mais les tables ne sont pas créées et je reçois toujours la même erreur que précédemment concernant l'absence de support pour les tables sans index en grappe.

Veuillez me conseiller

4voto

parliament Points 1816

Il s'avère que c'est un bug dans Entity Framework 6 -Alpha 3. Je suppose que j'aurais dû le mentionner.

https://stackoverflow.com/a/15282861/1267778

2voto

maartenba Points 2374

Celui-ci semble similaire (bien que ce ne soit pas la solution idéale, selon moi) : Index groupés et non groupés d'Entity Framework Many-to-Many

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X