ایجاد Backup و Restore کردن دیتابیس توسط دستورات انتیتی فریم ورک
برای ایجاد backup و Restore کردن دیتابیس توسط دستورات EntityFromwotk چه کدهایی باید نوشته بشه . لطفا در این مورد راهنمایی بفرمایید.
باتشکر
ایجاد Backup و Restore کردن دیتابیس توسط دستورات انتیتی فریم ورک
ببینید انتیتی فریم ورک یک ORM هست. یعنی انتیتی فریم ورک برای ارتباط بین نرم افزار شما و دیتابیس و ایجاد کوئری روی اطلاعات دیتابیس ایجاد شده. به عبارتی میشه گفت Entity Framework برای مدیریت اطلاعات و تعاملات بین نرم افزار و دیتابیس هست. عملیات Backup و Restore جزو عملیات اصلی و مدیریتی خود دیتابیس هست و اصولا ORM ها خصوصا انتیتی فریم ورک قابلیت زیادی برای تغییرات اساسی مثل یک آپ یا ری استور دیتابیس ارائه نمیدن.
بهتره برای بک آپ گیری از خود Sql Server Managment Studio استفاده کنید و با تعریف Job به صورت اتوماتیک عملیات بک آپ گیری رو انجام بدید.
ایجاد بک آپ در Sql Server توسط دستورات T-Sql
BackUp DataBase DataBaseName To Disk = 'path' With Compression
توسط دستور بالا می تونید بک آپ گیری انجام بدید.
البته برای بک آپ گیری از طریق خود نرم افزار امکاناتی وجود داره. میتونید از ExcuteSqlCommand هم استفاده کنید.
string dbname = db.Database.Connection.Database;
string sqlCommand = @"BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, NOINIT, NAME = N'MyAir-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
db.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, string.Format(sqlCommand,dbname, "Amin9999999999999"));
باسلام
من خودم از این استفاده کردم
فقط یه نکته داره روی درایو ویندوز بعضی وقتا خطا میده
روی درایوی بجز ویندوز باید ذخیره کن کاربر
string SaveDB { get; set; }
private void BackupBatabase_Click(object sender, RoutedEventArgs e)
{
var QUAUA = (from UA in DbVahdat.tblUserAccesses where UA.UserIdRef == PublicVariable.gUserId where UA.SystemPartIdRef == 23 select UA);
var result2 = QUAUA.ToList(); if (result2.Count == 0) { MessageBox.Show("عدم دسترسی", "اخطار", MessageBoxButton.OK); return; }
Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
dlg.FileName = "VahdatSystem" + String.Format("{0:yyyyMMdd}", Convert.ToDateTime(calender.Text)) + "-" + DateTime.Now.ToString("HHmmss"); // Default file name
dlg.DefaultExt = ".bak";
dlg.Filter = "Database Backup (.bak)|*.bak";
Nullable<bool> result = dlg.ShowDialog();
if (result == true)
{
SaveDB = dlg.FileName;
try
{
var sql = "backup database VahdatSystemDB to disk = {0} with compression";
DbVahdat.Database.ExecuteSqlCommand(TransactionalBehavior.DoNotEnsureTransaction, sql, SaveDB);
MessageBox.Show($"نسخه پشتیبان دیتابیس " + "\n" +
"با موفقیت تهیه شد",
$"نسخه پشتیبان دیتابیس",
MessageBoxButton.OK, MessageBoxImage.None, MessageBoxResult.OK, MessageBoxOptions.RightAlign | MessageBoxOptions.RtlReading);
}
catch (Exception ex)
{
MessageBox.Show("هنگام تهیه نسخه پشتیبان اطلاعات در دیتابیس مشکلی بوجود آماده لطفاً دوباره سعی کنید" + ex.ToString(), "خطای ارتباطی");
}
finally
{
}
}
}
از کاربر (اگه دسترسی بکاپ گیری داشته باشه ) مسیر میگیره و بکاپ رو ذخیره میکنه
اگه اخطار بده بهش پیغام خطا میده
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- حذف کامل یک رکورد در جدول ریلیشن شده
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf