【发布时间】:2023-04-08 16:24:01
【问题描述】:
我们首先使用带有 DropCreateDatabaseIfModelChanges 种子模型的 ef 代码。
数据库没有很多敏感信息,丢掉也没关系。
但是,我们应该能够在删除旧版本之前对其进行备份。有可能吗?
【问题讨论】:
标签: c# .net entity-framework-4 ef-code-first
我们首先使用带有 DropCreateDatabaseIfModelChanges 种子模型的 ef 代码。
数据库没有很多敏感信息,丢掉也没关系。
但是,我们应该能够在删除旧版本之前对其进行备份。有可能吗?
【问题讨论】:
标签: c# .net entity-framework-4 ef-code-first
我们将在不久的将来实现接口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();
}
【讨论】: