我将数据植入ApplicationDbContext.cs的OnModelCreating方法中。我想总是添加一些数据,但还要有条件地添加一些数据(仅在环境处于开发状态时)。
我该如何实现?我不能将方法签名更改为具有“ IHostingEnvironment env”,因为在这种情况下,它不会覆盖OnModelCreating。
protected override void OnModelCreating(ModelBuilder builder)
谢谢!
答案 0 :(得分:3)
DbContext
有一个内部服务提供商,您可以利用它:
var env = this.GetService<IHostingEnvironment>();
if (env.IsDevelopment())
{
// seed
}
您需要稍微修改services.AddDbContext
:
services.AddDbContext<MyContext>(o => o
.UseSqlServer(Configuration.GetConnectionString("Default"))
.UseInternalServiceProvider());