ایجاد Backup و Restore کردن دیتابیس توسط دستورات انتیتی فریم ورک
برای ایجاد backup و Restore کردن دیتابیس توسط دستورات EntityFromwotk چه کدهایی باید نوشته بشه . لطفا در این مورد راهنمایی بفرمایید.
باتشکر
پاسخ هوش مصنوعی
برای ایجاد Backup و Restore از دیتابیس با استفاده از Entity Framework، باید از دستورات ADO.NET برای تعامل با دیتابیس استفاده کنید، زیرا Entity Framework به طور مستقیم چنین قابلیت هایی را ارایه نمی دهد. در اینجا مثال هایی برای Backup و Restore دیتابیس آورده شده است:
برای ایجاد Backup از دیتابیس، می توانید از کد زیر استفاده کنید:
using (var connection = new SqlConnection("YourConnectionString"))
{
connection.Open();
var command = new SqlCommand("BACKUP DATABASE [YourDatabaseName] TO DISK = 'C:\\backup\\YourDatabaseName.bak'", connection);
command.ExecuteNonQuery();
}
برای Restore کردن دیتابیس، می توانید از کد زیر استفاده کنید:
using (var connection = new SqlConnection("YourConnectionString"))
{
connection.Open();
var command = new SqlCommand("RESTORE DATABASE [YourDatabaseName] FROM DISK = 'C:\\backup\\YourDatabaseName.bak'", connection);
command.ExecuteNonQuery();
}
توجه داشته باشید که در این کدها، باید موارد زیر را تغییر دهید:
YourConnectionString
: رشته اتصال به دیتابیس شماYourDatabaseName
: نام دیتابیس شما- مسیر فایل بکاپ را در
DISK
مناسب کنید.
همچنین برای اجرای این دستورات، باید مجوزهای لازم روی سرور SQL را داشته باشید.
ایجاد 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
{
}
}
}
از کاربر (اگه دسترسی بکاپ گیری داشته باشه ) مسیر میگیره و بکاپ رو ذخیره میکنه
اگه اخطار بده بهش پیغام خطا میده
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- مشکل تاریخ شمسی در سی شارپ
- نمایش گزارش stimulsoft روی کلاینت
- حذف کامل یک رکورد در جدول ریلیشن شده
- تفاوت های سی شارپ 8 با نسخه های قبلی چیه؟
- انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
- مقایسه ساختار دو دیتابیس در Sql Server
- اشکال در ایجاد کلید خارجی در Sql Server
- نمایش نوتیفکیشن در سی شارپ
- ارسال پارامتر از سی شارپ به استیمول سافت
- عدم نمایش عکس در دیتاگرید ویو در wpf