3
我們首先使用ef代碼和DropCreateDatabaseIfModelChanges種子模型。在數據庫被DropCreateDatabaseIfModelChanges刪除之前進行備份
該數據庫沒有很多敏感信息,因此如果它被丟棄就沒有問題。
但是我們應該能夠在刪除之前備份舊版本。可能嗎?
我們首先使用ef代碼和DropCreateDatabaseIfModelChanges種子模型。在數據庫被DropCreateDatabaseIfModelChanges刪除之前進行備份
該數據庫沒有很多敏感信息,因此如果它被丟棄就沒有問題。
但是我們應該能夠在刪除之前備份舊版本。可能嗎?
我們將在不久的將來實現接口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();
}