【问题标题】:Entityframework 6.02 seed method is not getting calledEntityframework 6.02 种子方法没有被调用
【发布时间】:2014-01-24 21:47:46
【问题描述】:

我首先使用 Visual Studio 2012 在我的 webapi 项目中尝试实体框架 (6.02) 代码。

以下是简单的模型、数据库上下文和我用于种子数据的自定义初始化程序。现在,当我按 f5 并运行我的代码时,它没有在种子方法上命中调试器,并且没有使用我在种子方法中提供的命令为我创建数据库。

namespace silverstar.wapi.Models
{
    public class Order
    {
        public int OrderId { get; set; }
        public string Title { get; set; }
        public int TotalItems { get; set; }
        public int ProcessedItems { get; set; }
        public int InProgress { get; set; }
        public decimal Percentage { get; set; }
        public string Description { get; set; }

    }

    public class SilverStarContext : DbContext
    {
        public DbSet<Order> Orders { get; set; }
    }

    public class SilverStarInitalizer : DropCreateDatabaseIfModelChanges<SilverStarContext>
    {
        protected override void Seed(SilverStarContext context)
        {
            var orders = new List<Order> { 

                new Order { OrderId=1, TotalItems=200, InProgress=100, ProcessedItems =100, Percentage=50, Title="fifa 2014"},
                new Order { OrderId=2, TotalItems=400, InProgress=200, ProcessedItems =200, Percentage=50, Title="green soccer 2014"}
            };

            orders.ForEach(o => context.Orders.Add(o));
            context.SaveChanges();

//            base.Seed(context);
        }

    }
}

在我的 global.asax.cs 文件中,我有以下代码

protected void Application_Start()
        {
            Database.SetInitializer <SilverStarContext>(new SilverStarInitalizer());

        }

【问题讨论】:

  • 第一次做某事(即查询)时会调用它。您是否尝试执行查询?

标签: c# asp.net entity-framework


【解决方案1】:

您必须实例化 DbContext 并尝试在构建模型之前使用它

【讨论】:

  • 您需要使用您的数据库上下文 - 使用它来查询数据库以获取一些数据,然后将构建模型(以及随后的数据库本身)
猜你喜欢
  • 2013-12-13
  • 2012-03-13
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2011-08-28
  • 2017-02-24
  • 2015-02-23
相关资源
最近更新 更多