【问题标题】:How to log custom ado.net SQL queries in .net core?如何在 .net 核心中记录自定义 ado.net SQL 查询?
【发布时间】:2019-08-12 10:05:53
【问题描述】:

我将 EF Core 和 ADO.NET 用于自定义 SQL。 我在我的日志文件中获得了所有 EF Core SQL,但我没有看到我的自定义 SQL(使用 DbCommand 创建)。

如何记录 ALL 我的 .net 核心应用发送到数据库的 SQL?

【问题讨论】:

  • “自定义 SQL(使用 DbCommand 创建)” - 为什么?只需使用context.Query<T>.FromSql("Query")?
  • 将 ADO.NET 与 EF 结合使用的一个很好的理由当然是优化 SQL 查询,使其超出 EF 的能力。即使只执行.FromSql("Query"),EF 也确实有很大的开销成本。但是,该开销确实包括日志记录功能。 ADO.NET 没有日志记录,您必须自己编写。
  • 你能用你的配置和自定义 sql 调用更新帖子吗?为了更好地了解您的问题

标签: c# .net-core


【解决方案1】:

ADO.NET 没有日志记录(谢谢@adam-vincent)。

当性能不是问题时,可以按照Raw SQL Query without DbSetEntity framework Core Raw SQLQueries with custom model for context.Query<T>.FromSql("Query") 中的描述创建Query types

尝试查询未注册为“查询类型”的类型会导致错误“System.InvalidOperationException:无法为“ReportStatusCount”创建 DbSet,因为该类型未包含在上下文的模型中。”。

查询类型必须有属性而不是字段。

【讨论】:

    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2021-06-11
    • 2017-11-10
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多