Entity framework core 禁用EF核心迁移验证查询

Entity framework core 禁用EF核心迁移验证查询,entity-framework-core,azure-application-insights,Entity Framework Core,Azure Application Insights,我正在运行一个asp.net core 2.1.4 web应用程序,其中entity framework core 2.1.4首先使用代码。迁移和种子在应用程序启动时完成 我注意到有几个EF查询检查每个调用的迁移历史: Executed DbCommand (47ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[__EFMigrationsHistory]'); Executed D

我正在运行一个asp.net core 2.1.4 web应用程序,其中entity framework core 2.1.4首先使用代码。迁移和种子在应用程序启动时完成

我注意到有几个EF查询检查每个调用的迁移历史:

Executed DbCommand (47ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[__EFMigrationsHistory]');

Executed DbCommand (2ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT OBJECT_ID(N'[__EFMigrationsHistory]');

Executed DbCommand (4ms) [Parameters=[], CommandType='Text', CommandTimeout='30'] SELECT [MigrationId], [ProductVersion] FROM [__EFMigrationsHistory] ORDER BY [MigrationId];

No migrations were applied. The database is already up to date.
我不想每次打电话都查数据库。所以我改变了ServiceLifetime.Singleton。但我仍然在每次通话中看到这种验证查询

services.AddDbContext

EF core中不存在NullDatabaseInitializer

建议做什么?这是正常的行为吗

我发现了问题:

在使用了一个“真正的”SQL分析器之后,我发现它像@Ivan Stoev所说的那样正常工作。我这边的请求不知何故使用了相同的操作id。因此,应用程序洞察向我显示的跟踪和依赖关系实际上并不相关

我通过删除AI的默认DependecyTracking来修复它。


感谢您的时间,很抱歉浪费了您的时间。

EF Core的默认行为是什么都不做(相当于EF6 NullDatabaseInitializer)。必须有一些应用程序代码调用
数据库.Migrate
或类似程序。确切地说,我是在应用程序启动时调用
数据库.Migrate()
我自己。但是验证查询是在每个新的http请求上完成的。一定有你的一些代码(或者你使用的EF核心以外的库)在这样做。EF Core没有。感谢您的澄清!可能是
Microsoft.AspNetCore.Identity
IdentityServer4
导致了此问题<代码>服务.AddIdentity().AddEntityFrameworkStores().AddDefaultTokenProviders()
private void RemoveDefaultAiDependencyTracking(IServiceCollection services)
{
    var serviceDescriptor = services.FirstOrDefault(descriptor => descriptor.ImplementationType == typeof(DependencyTrackingTelemetryModule));
    services.Remove(serviceDescriptor);
}