我在 ASP .NET Core 中具有Web API。当我在Startup.ConfigureServices
中添加数据库上下文时:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<FixturesContext>(
options => options.UseSqlServer(Configuration.GetConnectionString("FixturesDatabase")));
services.AddControllers();
}
我看到“服务”容器中的服务数量增加了三个,我认为是:
我很好奇
"DbContextOptions1"
是什么?有人知道吗?我已尝试使用Google搜索,但结果不令人满意。我的目标是用内存替换原始上下文(以在没有原始数据库的情况下运行集成测试),因此我要删除数据库上下文及其选项,并添加内存上下文代替它们。 最佳答案
您获得的第三个服务是DbContextOptions的通用版本。在泛型类型上调用.ToString()
时,通常看起来像这样。
之所以有三个实例,是因为EF为您定义的上下文添加了一个常规DbContextOptions对象和一个更特定的对象。
如果检查第三项服务的调用,则应找到DbContext的类型作为通用参数。