【问题标题】:View SQL generated by Entity Framework version 5 [duplicate]查看实体框架版本 5 生成的 SQL [重复]
【发布时间】:2022-02-19 05:22:37
【问题描述】:

如何查看Entity Framework(版本5)生成的完整sql查询?我可以使用查看它

query.ToString()

但我没有得到它的所有参数。我得到了很多变量,比如@p_linq_0。

【问题讨论】:

  • 您是否在启动时将.EnableSensitiveDataLogging() 放在UseSqlServer 调用的末尾?另请注意,检查可查询的 .DebugView 提供的信息比 ToString() 更多
  • 如果你能做到query.ToString(),你就是EF经典。我添加了标签。如果您不同意,请选择其他标签。
  • 在较新的版本中,请参阅blog.oneunicorn.com/2020/01/12/toquerystring

标签: c# sql-server entity-framework entity-framework-5


【解决方案1】:

您可以使用EnableSensitiveDataLoggingEnableSensitiveDataLogging 在控制台输出窗口中记录 SQL 查询,还可以在 EF 中发生异常时记录更多详细信息

 public ApplicationDbContext CreateContext()
        => new ApplicationDbContext(
            new DbContextOptionsBuilder<ApplicationDbContext>()
                .UseSqlServer(Configuration["TestDBConnection"])
                .EnableSensitiveDataLogging()
                .Options);

从 EF Core 5.0 开始,您还可以使用 LogTo 方法,该方法将 Action 委托作为参数,使您能够登录到控制台或文件,或者登录到 NoSQL 数据库,例如

     public ApplicationDbContext CreateContext()
        => new ApplicationDbContext(
            new DbContextOptionsBuilder<ApplicationDbContext>()
                .UseSqlServer(Configuration["TestDBConnection"])
                .LogTo(Console.WriteLine)
                .Options);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多