View Full Version : دلیل استفاده از Database.SetInitializer
jaykob
یک شنبه 27 بهمن 1392, 10:11 صبح
سلام دوستان
زمانی که از Entity FrameWork استفاده می کنیم از کد زیر در رویداد Application_Start برنامه در Globax استفاده می کنیم توضیح و اینکه چرا استفاده می کنیم رو می خواستم بدونم :
Database.SetInitializer<MVCDemo.Models.EmployeeContext>(null);
با تشکر
Cybersilent
دوشنبه 28 بهمن 1392, 20:16 عصر
معمولا سه استراتژی برای شروع کار ef وجود دارد.
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Migrations.Configuration>());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Context>());
Database.SetInitializer(new DropCreateDatabaseAlways<Context>());
که البته از خوندنشون میشه فهمید کارشون چیه، آیا منظور شما هم تعیین این استراتژی هاست یا دقیقا می خواید کد بالا رو بدونید چیکار می کنه!؟
jaykob
سه شنبه 29 بهمن 1392, 08:13 صبح
معمولا سه استراتژی برای شروع کار ef وجود دارد.
Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Migrations.Configuration>());
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<Context>());
Database.SetInitializer(new DropCreateDatabaseAlways<Context>());
که البته از خوندنشون میشه فهمید کارشون چیه، آیا منظور شما هم تعیین این استراتژی هاست یا دقیقا می خواید کد بالا رو بدونید چیکار می کنه!؟
سلام
خیلی ممنون از پاسختون
اگر امکان داره یک توضیح ساده و مختصر در رابطه با این سه استراتژی بدید و توضیح عملکرد کد
ممنون
shadbad
سه شنبه 29 بهمن 1392, 18:23 عصر
درود
در حالت اول زمانی که برنامه اجرا میشود چک میشود که آیا مدل پایگاه داده با پایگاه داده sync هستند یا نه اگر نباشند پایگاه داده آپدیت میشود.
در حالت دوم اگر مدل تغییر کرده باشد پایگاه داده پاک میشود و دوباره ساخته میشود که مناسب زمان develop هستند نه deploy.
در حالت سوم در هر بار اجرای برنامه پایگاه داده پاک میشود و دوباره ساخته میشود که این روش هم مسلماً تنها برای زمان develop میباشد.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.