首页 > 解决方案 > OnModelCreating 中的环境检查

问题描述

我在 ApplicationDbContext.cs 的 OnModelCreating 方法中播种我的数据。我想总是添加一些数据,但也有条件地添加一些数据(仅当环境是开发时)。

我怎样才能做到这一点?我无法将方法签名更改为具有“IHostingEnvironment env”,因为在这种情况下它不会覆盖 OnModelCreating。

protected override void OnModelCreating(ModelBuilder builder)

谢谢!

标签: asp.net-core-mvcentity-framework-coreseeding

解决方案


DbContext有一个您可以使用的内部服务提供商:

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

您需要services.AddDbContext稍作修改:

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

推荐阅读