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

آموزش انتقال مبتنی بر کد (Code-based Migration)

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

آموزش انتقال مبتنی بر کد (Code-based Migration)

Code based migration زمانی مفید است که شما می خواهید کنترل بیشتری بر migration داشته باشید برای مثال مقدار پیش فرض ستون را Set کنید.
Code-First دو دستور برای code based migration دارد.
Add-migration : migration بعدی را برای تغییراتی روی کلاس های Domain تان اعمال کردید، ایجاد می کند.
Update-database : تغییرات موقت را براساس آخرین تغییرات فایل scaffolding code به پایگاه داده اعمال می کند.
فرض کنید که شما در ابتدا کلاس های Student و Course را دارید و قصد دارید در برنامه تان از code based migration استفاده کنید. بنابراین قبل از اجرا کردن دستورات بالا، شما باید به وسیله دستورات enable-migrations، migration را فعال کنید. این دستورات در package manger قراردارند که ما قبلا برا ی automatic migration استفاده کردیم. این یک فایل configuration ایجاد خواهد کرد همانطور که این فایل را برای automatic migration ایجاد می کند و همین طور احتیاج دارید که راه انداز پایگاه داده را در کلاس context تنظیم کنید.


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

اکنون شما باید یک فایل scaffold code که شامل موارد موردنیاز براساس کلاس های Domain است، را ایجاد کنید. به وسیله اجرا کردن دستور add-migration در package manger می توانید این را انجام دهید.(Tools → Library Package Manager → Package Manager Console). نام پارامتر را باید ارسال کنید که بخشی از نام code file می باشد.


آموزش Entity Framework

Add-Migration command Syntax

    
Add-Migration [-Name] [-Force]‎
        ‎      [-ProjectName ] [-StartUpProjectName ]‎
        ‎      [-ConfigurationTypeName ] [-ConnectionStringName ]‎
        ‎      [-IgnoreChanges] []‎
        ‎ ‎
        ‎    Add-Migration [-Name] [-Force]‎
        ‎      [-ProjectName ] [-StartUpProjectName ]‎
        ‎      [-ConfigurationTypeName ] -ConnectionString ‎
        ‎      -ConnectionProviderName [-IgnoreChanges] []

اکنون می توانید ببینید که این دستور فایل جدیدی را در پوشه Migration با نام پارامتر ارسال شده به این دستور با پیشوند timestamp ایجاد کرده است.


آموزش Entity Framework

بعد از ایجاد کردن فایل بالا با دستور add-migration ، شما باید پایگاه داده را بروزرسانی کنید.با استفاده از دستور update-database می توانید پایگاه داده را بروز رسانی یا ایجاد کنید.و برای بررسی کردن جزپیات در پایگاه داده می توانید از دستور –verbose استفاده کنید.


آموزش Entity Framework

Update-Database command syntax

  
Update-Database [-SourceMigration ]‎
        ‎      [-TargetMigration ] [-Script] [-Force] [-ProjectName ]‎
        ‎      [-StartUpProjectName ] [-ConfigurationTypeName ]‎
        ‎      [-ConnectionStringName ] []‎
        ‏        ‏Update-Database [-SourceMigration ] [-TargetMigration ]‎
        ‎      [-Script] [-Force] [-ProjectName ] [-StartUpProjectName ]‎
        ‎      [-ConfigurationTypeName ] -ConnectionString ‎
        ‎      -ConnectionProviderName []

تا این لحظه پایگاه داده ایجاد یا بروز رسانی خواهد شد.
فرض کنید شما کلاس های Domain بیشتری را اضافه کردید.بنابراین قبل از اجرای برنامه شما باید به وسیله دستور Add-Migration یک فایل scaffold برای کلاس های جدید ایجاد کنید.وقتی که فایل را ایجاد کردید پایگاه داده را به وسیله دستور Update-Database بروز رسانی کنید.بنابراین هر زمان که تغییراتی در کلاس های Domain تان ایجاد می کنید دستورات Update-Database و Add-Migration را تکرار کنید.


برگرداندن تغییرات پایگاه داده

فرض کنید شما می خواهید تغییرات پایگاه داده را به حالت قبلی برگردانید و برای بروز رسانی پایگاه داده با دستور Update-database با پارامتر –TargetMigration همانطور که در زیر نشان داده شده است ، استفاده کنید.


update-database –TargetMigration:”First School DB schema” 

با استفاده از دستور get-migration می توانید مشاهده کنید که چه نوع migration اعمال شده است.
نکته:با استفاده از دستور get-help برای دستورات add-migration و update-database می توانید مشاهده کنید چه پارامتر های می توانید با این دستور ارسال کنید.

  • 4258
  •    1350
  • تاریخ ارسال :   1394/07/27

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

ارسال

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

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