Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET Core AddDbContextPool未触发ChangeTracker事件_C#_Asp.net Core_Ef Core 3.0 - Fatal编程技术网

C# ASP.NET Core AddDbContextPool未触发ChangeTracker事件

C# ASP.NET Core AddDbContextPool未触发ChangeTracker事件,c#,asp.net-core,ef-core-3.0,C#,Asp.net Core,Ef Core 3.0,我有一个ASP.NET Core 3.0应用程序,使用.NET Core 3.0和EF Core 3.0。我正在使用AddDbContextPool注册我的DbContext: services.AddDbContextPool<IMyDbContext, MyDbContext>( optionsAction: options => options.UseSqlServer( connectionString: Conf

我有一个ASP.NET Core 3.0应用程序,使用.NET Core 3.0和EF Core 3.0。我正在使用AddDbContextPool注册我的DbContext:

services.AddDbContextPool<IMyDbContext, MyDbContext>(
            optionsAction: options => options.UseSqlServer(
                connectionString: Configuration.GetConnectionString("MyDatabase"))
        );
services.AddDbContextPool(
options操作:options=>options.UseSqlServer(
connectionString:Configuration.GetConnectionString(“MyDatabase”))
);
在DbContext构造函数中,我附加到ChangeTracker的两个事件:

public MyDbContext(DbContextOptions<MyDbContext> options)
            : base(options)
        {
            // Attach to our important events
            ChangeTracker.StateChanged += ChangeTracker_StateChanged;
            ChangeTracker.Tracked += ChangeTracker_Tracked;
        }
public MyDbContext(DbContextOptions)
:基本(选项)
{
//重视我们的重要事件
ChangeTracker.StateChanged+=ChangeTracker\u StateChanged;
ChangeTracker.Tracked+=ChangeTracker\u Tracked;
}
第一次运行应用程序时,当我向上下文添加项目时,会触发事件。页面加载完成后,我会发出另一个请求,但这次在向上下文添加项目时不会触发任何事件。当它从池中提取上下文时,似乎不再注册事件处理程序


使用常规AddDbContext时没有问题。这是预期的行为还是我应该以不同的方式注册我的事件处理程序

这可能被认为是一个bug——你能在

上下文实例应重置为其构造后的状态。然而,这可能是棘手的事件

最好的方法是不要
AddDbContextPool
。在大多数情况下,使用
AddEbContext时的性能差异可以忽略不计。

没问题: