我在 ASP .NET Core 中具有Web API。当我在Startup.ConfigureServices中添加数据库上下文时:

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<FixturesContext>(
            options => options.UseSqlServer(Configuration.GetConnectionString("FixturesDatabase")));
    services.AddControllers();
}

我看到“服务”容器中的服务数量增加了三个,我认为是:
  • 固定装置上下文
  • DbContextOptions
  • DbContextOptions`1

  • 我很好奇"DbContextOptions1"是什么?有人知道吗?我已尝试使用Google搜索,但结果不令人满意。我的目标是用内存替换原始上下文(以在没有原始数据库的情况下运行集成测试),因此我要删除数据库上下文及其选项,并添加内存上下文代替它们。

    最佳答案

    您获得的第三个服务是DbContextOptions的通用版本。在泛型类型上调用.ToString()时,通常看起来像这样。

    之所以有三个实例,是因为EF为您定义的上下文添加了一个常规DbContextOptions对象和一个更特定的对象。

    如果检查第三项服务的调用,则应找到DbContext的类型作为通用参数。

    10-06 05:47