5

コードファーストマイグレーションでSQLAzureデータベースを作成できないようです。

クラスタ化インデックスのないテーブルに対するSQLAzureのサポートの欠如について不平を言い続けており、データベースを作成する方法を見つけることができません。

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

`Update-Databaseを実行しようとすると、

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

データベースは作成されません。

更新:最初から始めて、このガイドに従って自動移行を有効にしました(データベースをスクラッチし、存在しないデータベースから開始したため、最初の移行からアップ/ダウンコードを削除する必要はありませんでした)

今回はデータベースが正常に作成されましたが(これまでに取得できませんでした)、テーブルは作成されず、クラスター化インデックスのないテーブルはサポートされないという以前と同じエラーが発生します。

お知らせ下さい

4

2 に答える 2

4

Entity Framework 6-Alpha3のバグであることが判明しました。私はそれについて言及すべきだったと思います。

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

于 2013-03-14T01:00:30.220 に答える
2

これは似ています(理想的なソリューションではありませんが):EntityFramework多対多クラスター化インデックスと非クラスター化インデックス

于 2013-03-13T07:08:25.173 に答える