0

私はEntity Framework Code-Firstについて読み、使い始めました。ローカル マシン (DefaultConnection) では問題なく動作していましたが、運用サーバー (AppHarbor の SQL Server アドオン) では動作を停止したようです。

気づいたことの 1 つは、__MigrationHistory フォルダーがシステム テーブルとして非表示になっていないことです。

スクリーンショット

AppHarbor のブログ に記載されている自動移行の方法を使用しています。
これは私の DatabaseContext クラスです:

 public class DatabaseContext : DbContext {
      public DatabaseContext() : base("DefaultConnection") { }
      public DbSet<UserProfile> UserProfiles { get; set; }
      public DbSet<Challenge> Challenges { get; set; }
      public DbSet<Feedback> Feedbacks { get; set; }

      protected override void OnModelCreating(DbModelBuilder modelBuilder) {
          Database.SetInitializer(new MigrateDatabaseToLatestVersion<DatabaseContext, Configuration>());
      }
  }  

appharbor データベースでコード ファーストを再び機能させたいと考えています。再度有効にする方法はありますか、または生成された移行クラスと __MigrationHistory をすべて削除し、OnModelCreatingコンストラクターを一時的に変更して初期化子を使用してデータベースを再作成する必要がありDropCreateDatabaseAlwaysますか? 移行をリセットし、現在書かれているコードから移行を開始するより良い方法は何でしょうか?

4

3 に答える 3

1

Julie Lermanによるこの記事を参照してください:http://thedatafarm.com/blog/data-access/using-ef-migrations-with-an-existing-database/。それはあなたが説明しているものではなく、おそらく「Getting 「既存のデータベースへの移行履歴テーブル」セクションが役立ちます

于 2013-02-02T12:21:06.783 に答える