2016-10-22 1 views
-1

J'utilise C#, .net 4, Entity Framework et SQL Server 2012 dans un projet.Comment sauvegarder et restaurer une base de données SQL Server en C# à l'aide d'Entity Framework, utiliser path sur textbox dans put

Je n'ai aucune connaissance de la sauvegarde et de la restauration de la base de données par Entity Framework. S'il vous plaît aidez-moi à écrire le code de restauration et de sauvegarde dans Entity Framework use path sur la zone de texte dans put. Merci!

+1

Entity Framework est pour travailler avec des entités ** ** - données de chargement, l'enregistrer en arrière, etc. EF est ** pas * * une bibliothèque de gestion SQL Server pour sauvegarder les bases de données et les restaurer à nouveau. –

+0

utilisez pure 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 -tranchant – Eins

Répondre

0

L'utilisation de SQL serveur vous commande habituellement serveur pour faire backup ou restore en utilisant le chemin pour effectuer le traitement de SQLServer sur la machine serveur. EF n'a rien à voir avec, même si vous pouvez obtenir le chemin avec la zone de texte et envoyer des commandes en utilisant la connexion à la base de données de votre EF DbContext. En relation avec le client, vous pouvez effectuer une sorte de sauvegarde, par ex. chargement de toutes les données dans DbContext et sérialisation dans le fichier. Mais vous ne pouvez pas simplement restaurer la base de données à partir de votre DbContext désérialisé en raison de l'absence de métadonnées requises. Si vous devez vraiment restaurer la base de données à partir des données client, vous pouvez créer une base de données vide à l'aide du script SQL prédéfini ou du code C# généré lors de la migration ou DatabaseInitializer puis remplir cette base de données à l'aide de DbContext désérialisé.

0

J'ai le code, mais je n'ai pas compris un code de ligne derrière. Comment puis-je utiliser le chemin sur la zone de texte dans 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"; 
  • le code:
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);