آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش انتقال خودکار (Automated Migration)

دوره های مرتبط با این مقاله

آموزش انتقال خودکار (Automated Migration)

Entity framework 4.3، Automated Migration را معرفی کرده است به طوری که برای هر تغییری که در کلاس های Domain ایجاد می کنید نیازی ندارید Migration پایگاه داده را به صورت دستی در code file ذخیره کنید، شما فقط نیاز به اجرای یک دسنور در Package Manger Console دارید.
بیایید ببینید که چگونه شما می توانیداز automated migration استفاده کنید.
همانطور که می دانید، زمانی که شما شروع به نوشتن برنامه Code-First می کنید نیازی به پایگاه داده ندارید.برای مثال، ما شروع به نوشتن یک برنامه با کلاس های Student و Course می کنیم. قبل از اجرای برنامه ای که پایگاه داده ندارد، شما باید برای فعال کردن automated migration با اجرای دستور ‘enable-migrations’ در Package Manager Console اقدام کنید.
اول، package manager console را از Tools را بازکنید -- > Library Package Manager -- > Package Manager Console و سپس دستور "enable-migrations –EnableAutomaticMigration:$true" را اجرا کنید. (اطمینان پیدا کنید که پروژه پیش فرض ، پروژه ای است که کلاس context را دارد)


آموزش Entity Framework

هنگامی که دستور با موفقیت اجرا شود، یک کلاس با پیکربندی داخلی در پوشه Migration در پروژه تان ایجاد می شود.


آموزش Entity Framework

اگر شما این را باز کنید و کلاس نشان داده شده در پایین را مشاهده کنید : این عبارت AutomaticMigrationsEnabled = true را در سازنده خواهید دید.


internal sealed class Configuration : ‎DbMigrationsConfiguration‎
        ‎{‎
public Configuration()‎
        ‎{‎
        AutomaticMigrationsEnabled = true;‎
        ‎}‎
protected override void Seed(SchoolDataLayer.SchoolDBContext ‎context)‎‎{‎
        ‎//  This method will be called after migrating to the latest version.‎
        ‎//  You can use the DbSet.AddOrUpdate() helper extension method‎
        ‎//  to avoid creating duplicate seed data. E.g.‎
        ‎//‎
        ‎//    context.People.AddOrUpdate(‎
        ‎//      p => p.FullName‎،‎
        ‎//      new Person { FullName = "Andrew Peters" }‎،‎
        ‎//      new Person { FullName = "Brice Lambson" }‎،‎
        ‎//      new Person { FullName = "Rowan Miller" }‎
        ‎//    );‎
        ‎//‎
        ‎}‎
        ‎}

همین طور که شما در کلاس Context راه انداز پایگاه داده را با استراتژی DB یعنی MigrateDatabaseToLatestVersion باید ست کنید.


   
public class SchoolDBContext: DbContext ‎
        ‎    {‎
        ‎        public SchoolDBContext(): base("SchoolDBConnectionString") ‎
        ‎        {‎
        ‎            ‎Database.SetInitializer(new ‎MigrateDatabaseToLatestVersion‎SchoolDataLayer.Migrations.Configuration>("SchoolDBConnectionString"));‎
        ‎        }‎
        ‎        public DbSet Students { get; set; }‎
        ‎        public DbSet Courses { get; set; }‎
        ‎        protected override void OnModelCreating(DbModelBuilder ‎modelBuilder)‎
        ‎        {‎
        ‎          base.OnModelCreating(modelBuilder);‎
        ‎        }‎
        ‎    }

همان طور که در کد نشان داده شده بالا مشاهده می کنید، اسم کلاس و پیکربندی را به همراه اسم کلاس Context را pass کردیم.
اکنون شما automated migration را تنظیم می کنید. این به طور خودکار از migration هنگامی که مدل را تغییر می دهید محافظت می کند. برنامه را اجرا کنید و پایگاه داده را مشاهده کنید.


آموزش Entity Framework

یک سیستم جدولی ایجاد شده است – جدول MigrationHistory همراه با دیگر جدول ها. خوب این جایی است automated migration تغییرات پایگاه داده را حفظ می کند.
اکنون یک کلاس استاندارد ایجاد می کنیم.دوباره برنامه اجرا کنید، خواهید دید که به طور خودکار یک جدول Standard ایجاد شده است.
اگر شما یک کلاس جدید اضافه کنید یا آن را حذف کنید، برنامه کار خواهد کرد اما در مورد اضافه کردن یا حذف خصوصیات از کلاس چطور؟ اگر آن را امتحان کنید و مشخصه Description را از کلاس Standard حذف کنید و برنامه را اجرا کنید. یک خطا روی خواهد داد.


آموزش Entity Framework

این خطا به خاطر این است که شما ستون description را از دست خواهید داد، اگر شما آن را از کلاس Standard حذف کنید. بنابراین برای کنترل این موارد شما باید در کلاس سازنده AutomaticMigrationDataLossAllowed = true قرارداده و همین طور AutomaticMigrationsEnabled = true را قرار دهید.
توجه:برای اطلاعات بیشتر در مورد پارامترهایی که می توانیم برای فعال کردن دستورات migrations ارسال کنیم می توانید از دستور "get-help enable-migrations" استفاده کنید.برای اطلاعات بیشتر به قسمت use "get-help enable-migrations –detailed" مراجعه کنید.
بدین صورت migration ها می توانند به طور خودکار کنترل شوند.


  • 3089
  •    1496
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانلود سورس کد دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .