using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Migrations;
using System.Data.Entity.Validation;
using System.Linq;
using System.Security.AccessControl;
//برای ایجاد اتوماتیک این کلاس دستور ذیل را در پاور شل مینویسیم
//Enable-Migrations -ContextTypeName Models.DatabaseContext -EnableAutomaticMigrations -ProjectName Models

namespace Models.Migrations
{

    internal sealed class Configuration : DbMigrationsConfiguration<Models.DataBaseContext>
    {
        #region سازنده پیش فرض
        public Configuration()
        {
            //اعمال منوال بصورت دستی نیاز به کد نویسی بسیار دارد
            // حالت اتوماتیک در 99 درصد از موارد پاسخگو است
            AutomaticMigrationsEnabled = true;

            ContextKey = "Models.DataBaseContext";

            // به دلايلی اين دستور را دستی اضافه می کنيم
            //اگر این گزینه فالس باشد هنگامی که میخوایم آیتمی را در مدل رینیم کنیم به مشکل میخوریم و کلا میخواد تیبل را پاک کند که ارور میدهد
            AutomaticMigrationDataLossAllowed = true;
        }
        #endregion

        #region کلاس سید

        /// <summary>
        /// اين تابع بر خلاف سه سناريوی قبل، هر زمان که برنامه اجرا شود، اجرا خواهد شد
        /// سعی کنید از سید مایگریشن استفاده نکنید
        /// بهتر است خودتان یک قسمت جداگانه ایجاد کنید
        /// </summary>
        protected override void Seed(Models.DataBaseContext context)
        {
            //  This method will be called after migrating to the latest version.

            //You can use the DbSet<T>.AddOrUpdate() helper extension method 
            //to avoid creating duplicate seed data. E.g.

            base.Seed(context);

            

        }
        #endregion
    }
}
