5

Nie mogę uzyskać mojej pierwszej migracji po Code-First, aby utworzyć moją bazę danych SQL Azure.Kod Pierwsze migracje w SQL Azure - tabele bez indeksu klastrowego nie są obsługiwane

Narzeka na brak obsługi SQL Azure dla tabel bez klastrowanych indeksów i nie mogę znaleźć sposobu na stworzenie mojej bazy danych.

Uwaga: Używam CreateDatabaseIfNotExists tworzyć tabele śledzenia na stworzenie bazy danych po raz pierwszy, bo widocznie DropCreateDatabaseIfModelChangesdoesn't do that for you

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

Gdy próbuję `update-Database uzyskać

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

Baza danych nie jest tworzona.

UPDATE: zacząłem od zera, a następnie this guide włączyć automatyczna migracja (porysowana bazy danych i zaczął z nieistniejącego jedną więc nie trzeba usuwać góra/dół kodu z początkowego migracji)

Tym razem moja baza danych została pomyślnie utworzona (Nie dotarłem tak daleko wcześniej), ale tabele nie zostały utworzone i nadal pojawia się ten sam błąd co poprzednio, o braku obsługi tabel bez klastrowanych indeksów.

Proszę doradzić

+0

Czy cały kod wygląda poprawnie, dlaczego nikt nie odpowiedział? – parliament

Odpowiedz

2

Ten wygląda podobnie (choć nie jest to rozwiązanie idealne imho): Entity Framework Many-to-Many Clustered vs. Nonclustered Index

+0

Dziękuję, ale nie jestem pewien, jak to dotyczy. Używam Code-First, a nie Model-First, a migracja nawet nie tworzy bazy danych, więc nie wiem, na którym etapie powinienem zmienić tabelę. – parliament

+0

Poza tym moja migracja zawiera wiersz, w którym klucz podstawowy został zgrupowany – parliament

+0

Zaktualizowano moje pytanie. Zacząłem od zera używając Automatic Migrations i byłem w stanie uzyskać bazę danych, ale nie tabele (otrzymałem ten sam błąd). Ustawiłem inicjator 'MigrateDatabaseToLatestVersion' w konstruktorze DbContext. Na którym etapie (i jak) można wprowadzić instrukcję sql, aby rozwiązać problem? – parliament

Powiązane problemy