使用内存数据库的 EF Core 简单日志记录

Viv*_*Dev 1 entity-framework-core

我尝试使用 SQL Server 和 Sqlite 进行EF Core 简单日志记录。运行良好。

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    //optionsBuilder.UseSqlServer("Data Source= (localdb)\\MSSQLLocalDB; Initial Catalog=SamuraiAppDataFirstLook");
    // optionsBuilder.UseSqlite("Data Source = SamuraiAppDataFirstLook.sqlite");
    optionsBuilder.UseInMemoryDatabase(new Guid().ToString());

    optionsBuilder.LogTo(logMessage =>
        {
            Debugger.Break();
            Debug.WriteLine(logMessage);
            Console.WriteLine(logMessage);
        },
        new[] {
          DbLoggerCategory.Database.Command.Name }, LogLevel.Information
    );

    optionsBuilder.EnableDetailedErrors();
    optionsBuilder.EnableSensitiveDataLogging();
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用内存数据库时,它不起作用。

这是设计使然吗?或者我错过了什么?

重现该问题的完整工作示例位于 github 上

如果我在这里使用 inMemory 数据库,则不会命中此处的Debugger.Break ()

但如果使用 SQL Server 或Sqlite提供程序,那么它确实会按预期在调试器中断处中断。

那么我错过了什么?内存数据库不支持简单日志记录吗?

Eri*_*kEJ 7

内存提供程序不是关系提供程序,因此不执行 DbCommands。所以没有什么可记录的。