C# 未对更新数据库、实体框架6调用种子方法

C# 未对更新数据库、实体框架6调用种子方法,c#,sql-server,database,entity-framework,C#,Sql Server,Database,Entity Framework,我有以下DbContext类。关于EF的一切都在进行良好的迁移、关系等,唯一对我不起作用的是播种。我尝试过许多不同的解决方案,但似乎都不管用。有人有主意吗 当我运行updatedatabase时,它似乎在执行seed方法,但数据库中没有更新任何内容 public class ProgramContext : DbContext { public ProgramContext() : base("ProgramContext") { Database.SetInit

我有以下DbContext类。关于EF的一切都在进行良好的迁移、关系等,唯一对我不起作用的是播种。我尝试过许多不同的解决方案,但似乎都不管用。有人有主意吗

当我运行updatedatabase时,它似乎在执行seed方法,但数据库中没有更新任何内容

public class ProgramContext : DbContext
{
    public ProgramContext() : base("ProgramContext")
    {
        Database.SetInitializer<ProgramContext>(new MyDbInit());
    }

    public DbSet<Bin> Bins { get; set; }
    public DbSet<Goal> Goals { get; set; }
    public DbSet<Queue> Queues { get; set; }
    public DbSet<Status> Statuses { get; set; }


    public class MyDbInit : DropCreateDatabaseIfModelChanges<ProgramContext>
    {
        protected override void Seed(ProgramContext context)
        {
            IList<Status> statuses = new List<Status>();
            Status status0 = new Status("WH-RAMP");
            Status status1 = new Status("Transport > Lijn");
            Status status2 = new Status("In lijn");
            Status status3 = new Status("Retour lijn");
            Status status4 = new Status("Transport > WH");
            context.Statuses.Add(status0);

            context.SaveChanges();
            base.Seed(context);
        }
    }
}
等级

public class Status
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public long StatusId { get; set; }
    public string StatusName { get; set; }

    public Status(string StatusName)
    {
        this.StatusName = StatusName;
    }
}
DropCreateDatabaseIfModelChanges IDatabaseInitializer的一种实现,仅当数据库创建后模型已更改时,才会删除、重新创建数据库并可选地重新为其设定种子

这可能会有帮助。配置类位于migrations文件夹中

internal sealed class Configuration : DbMigrationsConfiguration<BookService.Models.BookServiceContext>
{
     protected override void Seed(BookService.Models.BookServiceContext context)
     {
        Status status0 = new Status("WH-RAMP");
        Status status1 = new Status("Transport> Lijn");
        Status status2 = new Status("In lijn");
        Status status3 = new Status("Retour lijn");
        Status status4 = new Status("Transport > WH");
        context.Statuses.Add(status0);
        context.Statuses.Add(status1);
        context.Statuses.Add(status2);
        context.Statuses.Add(status3);
        context.Statuses.Add(status4);

     }
}

您不需要调用SaveChanges,只需使用seed即可required@EhsanSajjad不幸的是,这不是答案。你确定有实际的模型更改,即在过程中是否删除并重新创建了数据库?还尝试了其他类,似乎没有任何效果。这对我有效,我将稍后尝试DropDatabaseAlways和其他类。谢谢:
internal sealed class Configuration : DbMigrationsConfiguration<BookService.Models.BookServiceContext>
{
     protected override void Seed(BookService.Models.BookServiceContext context)
     {
        Status status0 = new Status("WH-RAMP");
        Status status1 = new Status("Transport> Lijn");
        Status status2 = new Status("In lijn");
        Status status3 = new Status("Retour lijn");
        Status status4 = new Status("Transport > WH");
        context.Statuses.Add(status0);
        context.Statuses.Add(status1);
        context.Statuses.Add(status2);
        context.Statuses.Add(status3);
        context.Statuses.Add(status4);

     }
}