2016-10-22 1 views
-1

Я использую C#, .net 4, Entity Framework и SQL Server 2012 в проекте.Как создать резервную копию и восстановить базу данных SQL Server в C# с помощью Entity Framework, использовать путь в текстовом поле в поле

Я не знаком с резервным копированием и восстановлением из базы данных Entity Framework. Пожалуйста, помогите мне написать код восстановления и резервного копирования в пути использования Entity Framework в текстовом поле в put. благодаря!

+1

Entity Framework для работы с ** ** - субъектами загрузки данных, сохранение его обратно и т.д. EF является ** нет * * библиотека управления SQL Server для резервного копирования баз данных и восстановления их снова. –

+0

использование чистый ado.net. http://stackoverflow.com/questions/3142171/backup-sql-server-database-with-progress http://stackoverflow.com/questions/9835553/how-to-backup-sql-database-programmatically-in-c -sharp – Eins

ответ

0

Использование SQL Server, вы обычно командуют сервер сделать backup или restore, используя путь, связанный с процессом SQLServer на серверной машине. EF не имеет никакого отношения, хотя вы можете получить путь с текстовым полем и отправить команды с использованием подключения к базе данных вашего EF DbContext.

Относительно клиента вы можете сделать какую-то резервную копию, например. загружая все данные в DbContext и сериализуя их в файл. Но вы не можете просто восстановить базу данных из десериализованного DbContext из-за отсутствия необходимых метаданных. Если вам действительно нужно восстановить базу данных из клиентских данных, вы можете создать пустую базу данных с использованием предопределенного SQL-скрипта или кода C#, сгенерированного во время миграции, или DatabaseInitializer, а затем заполнить эту базу данных с помощью десериализованного DbContext.

0

У меня есть код, но я не понял код строки. Как использовать путь в текстовом поле в put.

const string sqlCommand = @"BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, NOINIT, NAME = N'Quanlybanhang-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"; 
  • код:
string dbname = PST.context.Database.Connection.Database; 
string backupname = "Quanlybanhang" + DateTime.Now.ToString("yyyyMMddHHmm"); 
const string sqlCommand = @"BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, NOINIT, NAME = N'Quanlybanhang-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"; 
int path = PST.context.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, string.Format(sqlCommand, dbname, backupname)); 
MessageBox.Show("Backup successful!", "Notification", MessageBoxButtons.OK, MessageBoxIcon.Information);