asp.net-core-mvc - OnModelCreating 中的环境检查
问题描述
我在 ApplicationDbContext.cs 的 OnModelCreating 方法中播种我的数据。我想总是添加一些数据,但也有条件地添加一些数据(仅当环境是开发时)。
我怎样才能做到这一点?我无法将方法签名更改为具有“IHostingEnvironment env”,因为在这种情况下它不会覆盖 OnModelCreating。
protected override void OnModelCreating(ModelBuilder builder)
谢谢!
解决方案
DbContext
有一个您可以使用的内部服务提供商:
var env = this.GetService<IHostingEnvironment>();
if (env.IsDevelopment())
{
// seed
}
您需要services.AddDbContext
稍作修改:
services.AddDbContext<MyContext>(o => o
.UseSqlServer(Configuration.GetConnectionString("Default"))
.UseInternalServiceProvider());
推荐阅读
- python - 从非 Web 源/事件发送到 Tornado 中的 Websocket
- python - 如何在python中选择具有相同id的列表?
- android - 如何用camerax拍照?
- java - Sbt 在尝试运行时在通用包装器错误中没有给出匹配的架构
- python - 此页面现在无法正常工作如果问题仍然存在,请联系网站所有者。HTTP ERROR 405 试图在 django 中解决这个问题?
- c++ - 始终为空元数据
- java - 如何让 maven 在存储库中获取我的本地 jar?
- db2 - 无论设备时间格式如何,as400 时间戳(yyyy-MM-dd-HH.mm.ssssss)都可以用于查询吗?
- springmockito - 如何在 mockito 中执行 catch 块以进行代码覆盖?
- oracle - liquibase 用户的 Oracle 角色