在DropCreateDatabaseIfModelChanges删除数据库之前进行备份

时间:2012-03-28 10:37:08

标签: c# .net entity-framework-4 ef-code-first

我们首先使用ef代码和DropCreateDatabaseIfModelChanges种子模型。

数据库没有很多敏感信息,所以如果它被删除就没问题。

但是我们应该能够在删除之前备份旧版本。有可能吗?

1 个答案:

答案 0 :(得分:0)

我们将在不久的将来实施界面IDatabaseInitializer<T>

目前,我们正在使用此代码(我知道,这并不理想):

Database.SetInitializer<OurdatabaseModel>(new OurdatabaseInitializer());
_instance = new OurdatabaseModel();

try
{
    // force model creation
    _instance.Database.Initialize(false);
}
catch (InvalidOperationException)
{
    if (_instance == null)
    {
        throw;
    }

    // database exists. Let's back it up.
    string dbPath = _instance.Database.Connection.Database.Replace("|DataDirectory|", Program.DataDirectory);
    File.Move(dbPath, dbPath + "." + DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss") + ".sdf");

    // and now the CreateDatabaseIfNotExists<T> will take care of the rest
    _instance = new OurdatabaseModel();
}
相关问题