Joh*_* Wu 2 c# logging entity-framework-core .net-6.0
当我用谷歌搜索“entityframework”和“logging”时,弹出了这篇文章,并且这里的几个人也提到了同一篇文章。
但是,当我尝试时,我似乎无法获取 Log 属性。我缺少什么?
我的 DbContext 实现(顺便说一句,这是由 Entityframework 自己的脚手架生成的):
internal partial class SharedContext : DbContext
{
public SharedContext()
{
}...
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试使用的方法: SharedContext context = new();
//I am getting CS1061 (DatabaseFacade does not contain a definition for Log....
context.Database.Log = Console.Write;
Run Code Online (Sandbox Code Playgroud)
请帮忙。谢谢!
您的问题标记为 .NET 6 和 EF Core,而本文提到 EF 6,它是 .NET Framework 的 EF 的上一个版本。您应该查看EF Core 的日志记录文档。例如通过重载方法使用简单的日志记录OnConfiguring:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
=> optionsBuilder.LogTo(Console.WriteLine);
Run Code Online (Sandbox Code Playgroud)
另外,您可能应该考虑通过依赖项注入设置上下文(DbContext Lifetime、Configuration和Initialization):
services.AddDbContext<SharedContext>(opts => opts // or AddDbContextFactory
.Use{YourDatabaseType}(...)
.LogTo(Console.WriteLine));
Run Code Online (Sandbox Code Playgroud)