Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在DropCreateDatabaseIfModelChanges删除数据库之前进行备份_C#_.net_Entity Framework 4_Ef Code First - Fatal编程技术网

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

C# 在DropCreateDatabaseIfModelChanges删除数据库之前进行备份,c#,.net,entity-framework-4,ef-code-first,C#,.net,Entity Framework 4,Ef Code First,我们首先在DropCreateDatabaseIfModelChanges种子模型中使用ef代码 数据库没有太多的敏感信息,所以如果删除它也没关系 但是,我们应该能够在删除旧版本之前对其进行备份。有可能吗?我们将在不久的将来实现接口IDatabaseInitializer 目前,我们正在使用以下代码(我知道这并不理想): Database.SetInitializer(新的OurdatabaseInitializer()); _实例=新的OurdatabaseModel(); 尝试 { //力模

我们首先在DropCreateDatabaseIfModelChanges种子模型中使用ef代码

数据库没有太多的敏感信息,所以如果删除它也没关系


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

我们将在不久的将来实现接口
IDatabaseInitializer

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

Database.SetInitializer(新的OurdatabaseInitializer());
_实例=新的OurdatabaseModel();
尝试
{
//力模型创建
_instance.Database.Initialize(false);
}
捕获(无效操作异常)
{
if(_instance==null)
{
投掷;
}
//数据库存在。让我们备份它。
字符串dbPath=_instance.Database.Connection.Database.Replace(“|DataDirectory |”,Program.DataDirectory);
File.Move(dbPath,dbPath++“+DateTime.Now.ToString(“yyyy-MM-dd_hh-MM-ss”)+”.sdf);
//现在CreateDatabaseIfNotExists将负责剩下的工作
_实例=新的OurdatabaseModel();
}
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();
}