1

次のコードがあります。

public class DataInitializer : DropCreateDatabaseAlways<DataContext>
// public class DataInitializer : CreateDatabaseIfNotExists<DataContext>
// public class DataInitializer : MigrateDatabaseToLatestVersion<DataContext, >
{
    public DataInitializer()
    {
        // System.Diagnostics.Debug.Write("Set Initializer\n");
        Database.SetInitializer<DataContext>(null);

        try
        {

これは、データベースを削除して再作成しているようには見えません。なぜそうしないのか、誰かが私にアドバイスをくれますか。

4

1 に答える 1

1

に設定してイニシャライザを削除していnullます。次のイニシャライザを作成します(DataContextから継承されたコンテキスト クラスであると仮定しますDbContext)。

public class DataInitializer : DropCreateDatabaseAlways<DataContext>
{
    // optionally override Seed method
}

そして、アプリケーションの開始時 (コンテキストを最初に作成する前) に呼び出します

Database.SetInitializer(new DataInitializer());

DropCreateDatabaseIfModelChangesイニシャライザの使用も検討してください。

于 2013-03-16T08:38:54.307 に答える