Entity framework Dotnet核心-实体框架-在本文中,空的花括号意味着什么,以及';结果如何

Entity framework Dotnet核心-实体框架-在本文中,空的花括号意味着什么,以及';结果如何,entity-framework,.net-core,entity-framework-core,Entity Framework,.net Core,Entity Framework Core,我最近读了G Pelpman关于“实现每个租户的数据库策略”的帖子 它处理连接到多个数据库的问题,并使用租户创建连接字符串 我感到困惑的是,它允许注册以下服务 public void ConfigureServices(IServiceCollection services) { services.AddDbContext<MultitenantDbContext>(o => { }); services.AddMvc(); services.Add

我最近读了G Pelpman关于“实现每个租户的数据库策略”的帖子

它处理连接到多个数据库的问题,并使用租户创建连接字符串

我感到困惑的是,它允许注册以下服务

public void ConfigureServices(IServiceCollection services)
{
    services.AddDbContext<MultitenantDbContext>(o => { });

    services.AddMvc();

    services.AddTransient<ITenantProvider, DummyTenantProvider>();
}
public void配置服务(IServiceCollection服务)
{
AddDbContext(o=>{});
services.AddMvc();
services.AddTransient();
}
特别是,

services.AddDbContext<MultitenantDbContext>(o => { });
services.AddDbContext(o=>{});
使用
(o=>{})的原因是什么


它如何帮助连接到多个数据库?

服务。AddDbContext接收一个操作(操作)作为参数。。。 在这种情况下,正如您在共享的帖子“每个租户实施数据库策略”中所说的那样,ConfigureServices()将不提供连接,因此将向服务传递一个空操作。AddDbContext()以完全填充选项操作参数。。。
将根据在DBContextOptions Builder上定义的租户进一步提供连接。\u租户

它是一个空操作委托。如果在启动ie
services.AddDbContext()中不进行任何设置,则可以完全删除该操作委托