【发布时间】:2016-08-25 19:03:50
【问题描述】:
我有一个 Entity Framework Core + ASP.NET Core 应用程序,当我的应用程序启动时,我想确保创建数据库,并且最终(一旦我进行迁移)我想确保这些也运行。
最初我将Database.EnsureCreated() 放入我的DbContext 的构造函数中,但每次有人点击我的应用程序时都会运行它,因为每次都会创建DbContext 的新实例。
我试图将它放入我的启动代码中,但我需要一个 DbContext 的实例来执行此操作,目前还不清楚如何获得它。我正在这样配置 EF:
serviceCollection.AddEntityFramework()
.AddSqlServer()
.AddDbContext<Models.MyContext>(options => options.UseSqlServer(...));
我没有看到从服务集合中获取 DbContext 实例的方法,也没有看到任何合适的单例来注入 DbContext,因此我可以进行一些一次性初始化。
那么,确保在每次应用程序运行时调用与我的 DbContext 相关的一些代码的最佳位置是什么?
【问题讨论】:
-
EnsureCreated 用于测试,不用于生产
标签: c# asp.net entity-framework-core