Я запускаю веб-приложение с ядром asp.net 2.1.4 с ядром платформы сущностей 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<ApplicationDbContext>(options =>
{
options.UseSqlServer(dbConnectionString,
builder => builder.MigrationsAssembly(migrationsAssembly));
}, ServiceLifetime.Singleton, ServiceLifetime.Singleton);
На EF6 есть похожий вопрос: Как отключить проверку миграции при каждой инициализации DbContext
NullDatabaseInitializer не существует в ядре EF.
Что рекомендуется делать? Это нормальное поведение?