OnModelCreating中的环境检查

时间:2018-08-15 17:43:56

标签: asp.net-core-mvc entity-framework-core seeding

我将数据植入ApplicationDbContext.cs的OnModelCreating方法中。我想总是添加一些数据,但还要有条件地添加一些数据(仅在环境处于开发状态时)。

我该如何实现?我不能将方法签名更改为具有“ IHostingEnvironment env”,因为在这种情况下,它不会覆盖OnModelCreating。

protected override void OnModelCreating(ModelBuilder builder)

谢谢!

1 个答案:

答案 0 :(得分:3)

DbContext有一个内部服务提供商,您可以利用它:

var env = this.GetService<IHostingEnvironment>();
if (env.IsDevelopment())
{
    // seed
}

您需要稍微修改services.AddDbContext

services.AddDbContext<MyContext>(o => o
    .UseSqlServer(Configuration.GetConnectionString("Default"))
    .UseInternalServiceProvider());