代码首先迁移在SQL Azure中 - 表没有一个聚集索引不支持(Code First Migrat

2019-08-17 11:53发布

我似乎无法让我的代码优先迁移来建立我的SQL Azure数据库。

它不断抱怨SQL Azure的缺乏表支持,而聚集索引,我不能找到周围的方式来创建我的数据库。

注:我使用CreateDatabaseIfNotExists创造变化对第一次数据库创建跟踪表,因为显然DropCreateDatabaseIfModelChanges 不会为你做的

    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");
        }
    }

如果我尝试'更新,数据库,会

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

未创建数据库。

更新:我是从零开始,跟着本指南以启用自动迁移(划伤数据库,并开始与一个不存在的一个,所以我没有从初始迁移删除向上/向下代码)

我的数据库已成功创建,这个时候(没得到这个前远),但该表没有创建,我仍然得到同样的错误之前的表,而不用聚簇索引的有关不支持。

请指教

Answer 1:

原来是在实体框架6-α3的错误,我想我应该已经提到。

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



Answer 2:

这一个看起来相似(虽然它不是理想的解决方案恕我直言): 实体框架许多一对多聚集与非聚集索引



文章来源: Code First Migrations in SQL Azure - Tables without a clustered index are not supported