【问题标题】:Entity framework seed method never invoked从未调用过实体框架种子方法
【发布时间】:2015-01-03 13:21:24
【问题描述】:

我把这段代码放在global.asax 文件中:

System.Data.Entity.Database.SetInitializer(new BcoInitializer());
ApplicationDbContext c = new ApplicationDbContext();
c.Database.Initialize(true);
var x = c.ProductCategories.ToList();

这会重新创建我的数据库。
但是Seed() 从未被调用过,我不知道为什么?

public class BcoInitializer : System.Data.Entity.DropCreateDatabaseAlways<ApplicationDbContext>
    {
        protected override void Seed(ApplicationDbContext context)
        {
            base.Seed(context);

            var currencies = new List<Currency>
            {                
                new Currency{CurrencyId="USD", Symbol="$"}
            };

这是我的上下文:

public ApplicationDbContext()
            : base("DefaultConnection")
        {   
            Database.SetInitializer(new CreateDatabaseIfNotExists<ApplicationDbContext>());
        }

【问题讨论】:

    标签: entity-framework ef-code-first entity-framework-6


    【解决方案1】:

    为你的上下文类试试这个:

     public ApplicationDbContext()
            : base("DefaultConnection")
        {   
            Database.SetInitializer(new BcoInitializer());
        }
    

    【讨论】:

    • 我知道这很简单 :) 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 2014-03-20
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多