Я использую .Net Core 2.1.
Мое приложение использует Entity Framework Core
, с контекстом CoreDbContext
, который происходит от DbContext
.
Для модульного тестирования я использую в памяти версию CoreDbContext
, в результатев этом коде в моем Startup.cs
:
if (useInMemoryDatabase)
{
services.AddDbContext<CoreDbContext>(options =>
options.UseInMemoryDatabase("dbname"));
}
else
{
services
.AddDbContext<CoreDbContext>(options =>
options.UseSqlServer(DefaultDbConnectionString));
}
У меня также есть методы, которые обращаются к базе данных через контекст.Иногда им нужно знать, находится ли контекст в памяти или нет, потому что контекст в памяти ведет себя не так, как обычно:
void AddRecordX(CoreDbContext context)
{
bool contextIsInMemory = .....;
}
Как я могу проверить, находится ли контекст в памяти или связан с реальнымSQL Server database