gpt4 book ai didi

entity-framework - 在 DB-First Approach 的调试窗口中记录所有 Entity Framework 查询

转载 作者:行者123 更新时间:2023-12-04 08:32:04 25 4
gpt4 key购买 nike

我想在调试窗口中记录 Entity Framework 查询。我可以使用以下行来做到这一点:

myContext.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);

但是我如何在不同的函数和不同的文件中为我的所有查询做到这一点?

我必须到处写这一行吗?

或者有没有办法通过编写特定的代码行来在一个地方记录每个查询来做到这一点。

按照建议,我已经在上下文的构造函数中编写了代码,但它不起作用。
public partial class EkartEntities : DbContext
{
public EkartEntities() : base("name=EkartEntities")
{
Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
}
}

难道我做错了什么?

此外,它不是 How to make EF log sql queries globally? 的副本。
因为帖子包含代码优先方法的答案,我们可以简单地修改我们的构造函数。

最佳答案

您可以通过将以下类添加到包含您的 DbContext 的项目来安装全局记录器。派生类:

class MyDbConfiguration : System.Data.Entity.DbConfiguration
{
public MyDbConfiguration()
{
AddInterceptor(new System.Data.Entity.Infrastructure.Interception.DatabaseLogFormatter(
s => System.Diagnostics.Debug.WriteLine(s)));
}
}

该类代表所谓的 Code-based configuration在这种特殊情况下用于自动注册 DatabaseLogFormatter与指定 Action<string>所有 DbContext包含它的项目中的派生类型和实例。

关于entity-framework - 在 DB-First Approach 的调试窗口中记录所有 Entity Framework 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52306788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com