PDA

View Full Version : سوال: چرا متد seed کار نمی کنه؟



پروگرامنویس
دوشنبه 02 مرداد 1396, 19:30 عصر
درود
میخوام یه سری اطلاعات اولیه به پایگاه دادم بدم ولی هرکاری میکنم متد سید کار نمیکنه!
اول از متد سید میگریشن استفاده میکردم که کدهای متد سیدش کار میکرد ولی چون یه سری مشکلات تو روند برنامه نویسی داشت(مثلا هربار پروژه اجرا میشه اطلاعات درون سید به پایگاه داده اضافه میشه) تصمیم گرفتم از یه کلاس اینیشیالایرز استفاده کنم.اول پوشه میگریشن رو پاک کردم و پایگاه داده هم بصورت دستی حذف کردم.ولی هرکاری میکنم متد سید درون کلاس SiteContextInitial کار نمیکنه.یا اصلا دیتابیس ساخت نمیشه یا اگرم بشه جدولها خالی هستند

کلاس siteContext : ضمنا همه چهار سناریو هم امتحان کردم


public class SiteContext : DbContext
{
static SiteContext()
{
//Database.SetInitializer<SiteContext>(
// new CreateDatabaseIfNotExists<SiteContext>());

//Database.SetInitializer<SiteContext>(
// new DropCreateDatabaseIfModelChanges<SiteContext>());

//Database.SetInitializer(
// new DropCreateDatabaseAlways<SiteContext>());

System.Data.Entity.Database.SetInitializer<SiteContext>(
new SiteContextInitial());

//Database.SetInitializer(
// new MigrateDatabaseToLatestVersion<
// SiteContext, RetoRayaneh.Migrations.Configuration>());
}
public SiteContext()
{
}

public DbSet<AD> Ads { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<LinkSite> LinkSites { get; set; }
public DbSet<Menu> Menus { get; set; }
public DbSet<Message> Messages { get; set; }
public DbSet<Post> Posts { get; set; }
public DbSet<SubMenu> SubMenus { get; set; }
public DbSet<User> Users { get; set; }

}


کلاس SiteCintextInitial


public class SiteContextInitial : System.Data.Entity.DropCreateDatabaseAlways<SiteContext>
{
public SiteContextInitial()
{

}
protected override void Seed(SiteContext context)
{

////01-User
context.Users.Add(new User("admin01", "رضا ترابی", "123", "a", "سلام رضا ترابی هستم", "reza@gg.com", "user.jpg", "ok"));
context.Users.Add(new User("wrtr01", "حمید رشیدپور", "123", "w", "سلام رشدپور هستم", "hrp@gg.com", "user.jpg", "ok"));
base.Seed(context);
}


لطفا راهنمایی کنید