protected override async Task RestoreDatabaseCore(string backupFullPath, bool async, CancellationToken cancelToken = default)
{
using var backupConnection = Database.GetDbConnection() as SqliteConnection;
var thisConnection = new SqliteConnection("Data Source=" + backupFullPath);
try
{
SqliteConnection.ClearAllPools();
if (async)
{
await thisConnection.OpenAsync(cancelToken);
}
else
{
thisConnection.Open();
}
thisConnection.BackupDatabase(backupConnection);
}
finally
{
if (async)
{
await backupConnection.CloseAsync();
await thisConnection.CloseAsync();
}
else
{
backupConnection.Close();
thisConnection.Close();
}
SqliteConnection.ClearPool(thisConnection);
SqliteConnection.ClearPool(backupConnection);
}
return 1;
}
protected override async Task BackupDatabaseCore(string fullPath, bool async, CancellationToken cancelToken = default)
{
using var backupConnection = new SqliteConnection($"Data Source={fullPath}");
var thisConnection = Database.GetDbConnection() as SqliteConnection;
try
{
if (async)
{
await thisConnection.OpenAsync(cancelToken);
}
else
{
thisConnection.Open();
}
thisConnection.BackupDatabase(backupConnection);
}
finally
{
if (async)
{
await backupConnection.CloseAsync();
await thisConnection.CloseAsync();
}
else
{
backupConnection.Close();
thisConnection.Close();
}
SqliteConnection.ClearPool(backupConnection);
SqliteConnection.ClearPool(thisConnection);
}
return 1;
}
/// <summary> /// Creates a backup of the database /// </summary> public virtual Task BackupDatabaseAsync(string fileName) { try { var backup = new SqliteConnection($"Data Source={fileName}"); var dbConnection = new SqliteConnection(DataSettingsManager.LoadSettings().ConnectionString); dbConnection.Open(); dbConnection.BackupDatabase(backup); //SqliteConnection.ClearPool(dbConnection); dbConnection.Close(); ...
Yorumlar
Yorum Gönder