【发布时间】:2016-06-06 15:02:54
【问题描述】:
在旧(.net 核心之前)时代的实体框架 6 中,如 blog post 所示,有一种方法可以配置一个拦截器,该拦截器可以记录所有慢查询,包括堆栈回溯。
[ 注意:在 Entity Framework Core 3.0 之前的版本中,这是不可能的,因此最初的问题是问该怎么做。自从提出这个问题以来,EF Core 的新选项和新版本已经发布。这个问题现在本质上是历史问题,后来添加的一些答案参考了其他较新版本的 EF Core,其中可能已重新引入拦截器,以实现与前核心时代实体框架的功能对等]
2015 年关于当时称为 EF7 的早期测试版的一个问题表明,它不是 asp.net vnext 早期测试版中的 possible yet。
然而,EF Core 的整个设计都是可组合的,在 github 错误跟踪器here 的讨论中,可能有一种技术可以在您子类化一些低级类(如 SqlServerConnection)然后覆盖其中的一些方法,为了获得一些分数,您可以在执行查询之前和之后挂钩,并在执行毫秒计时器值时添加一些低级日志记录。
(编辑:2020 年删除了对 2015 年预发布信息的引用)
【问题讨论】:
标签: c# visual-studio-2015 entity-framework-core