مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mrpeach

عضویت از 1394/04/13

mvc seed

  • سه شنبه 5 مرداد 1395
  • 15:08
تشکر میکنم

با سلام 

من پروژه حدیدی رو شروع کردم که در این پروژه از mvc5 استفاده می کنم و در کد خودم در seed کد هایی رو نوشتم و دیتابیس خودم رو روی حالت گذاشتم که اگر مدل تغییر کرد دیتابیس تغسسر کنه اما قسمت seed اصلا اجرا نمیشه حتی زمانی که پروژه رو برای بار اول اجرا میکنم مرورگرم بعد از حتی 20 دقیقه باز هیچی نشون نمیده تا اینکه برنامه رو stop کنم و دوباره اجرا بگیرم

 

public class ApplicationDbInitializer : DropCreateDatabaseIfModelChanges<ApplicationDbContext> 
    {
        protected override void Seed(ApplicationDbContext context) {
            InitializeIdentityForEF(context);

            var positions = new List<Setting>{
                     new Setting { Position = "TopA", Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "TopB",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "TopC",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "BlockA",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "BlockB",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "BlockC",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "BlockD",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "SidebarA",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "SidebarB",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "SidebarC",Limit = 0, Source = 0, Type = "ASC", Charecters = 0},
                     new Setting { Position = "SidebarD",Limit = 0, Source = 0, Type = "ASC", Charecters = 0}
            };
            positions.ForEach(x => context.Settings.Add(x));
            base.Seed(context);
        }

        public static void InitializeIdentityForEF(ApplicationDbContext db) {
            var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
            var roleManager = HttpContext.Current.GetOwinContext().Get<ApplicationRoleManager>();
            const string name = "nahravan.a@gmail.com";
            const string password = "Admin@123456";
            const string fullName = "Amir Nahravan";
            const string image = "amirnahravan.jpg";
            const string roleName = "Administrator";

            //Create Role Admin if it does not exist
            var role = roleManager.FindByName(roleName);
            if (role == null) {
                role = new IdentityRole(roleName);
                var roleresult = roleManager.Create(role);
            }

            var user = userManager.FindByName(name);
            if (user == null) {
                user = new ApplicationUser { UserName = name, Email = name, FullName = fullName, Image = image };
                var result = userManager.Create(user, password);
                result = userManager.SetLockoutEnabled(user.Id, false);
            }

            // Add user admin to Role Admin if not already added
            var rolesForUser = userManager.GetRoles(user.Id);
            if (!rolesForUser.Contains(role.Name)) {
                var result = userManager.AddToRole(user.Id, role.Name);
            }
        }
    }

 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 5 مرداد 1395
  • 15:16

کد هاتون به نظر درست میاد

نمونه زیر رو ببینید

درج اطلاعات پیش فرض (متد Seed) در بانک اطلاعاتی توسط فریم ورک Entity

 

کاربر سایت

mrpeach

عضویت از 1394/04/13

  • سه شنبه 5 مرداد 1395
  • 15:21

من هم دقیقا همین کار را کردم اما متد کن جواب نمیدهد

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 5 مرداد 1395
  • 15:26

شاید Config هاتون مشکل داره و تنظیمات انتیتی اعمال نشده

کاربر سایت

mrpeach

عضویت از 1394/04/13

  • سه شنبه 5 مرداد 1395
  • 15:29

میشه بیشتر راهتمایی کنید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 5 مرداد 1395
  • 15:31

Migration را فعال کردید ؟

در console nuget دستور Enable-Migration را اجرا کنید

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 5 مرداد 1395
  • 15:31
Enable-Migrations

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

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

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)