【问题标题】:Show only queries made by EF in SQL Profiler在 SQL Profiler 中仅显示 EF 进行的查询
【发布时间】:2019-11-11 22:24:29
【问题描述】:

如何在 SQL Profiler 中仅显示 EF 进行的查询?

正如您在屏幕截图中看到的那样,以红色突出显示的查询是我在 EF 的帮助下创建的。所有其他的都是从其他地方生成的,我想隐藏它们。

有可能吗?

更新

当我尝试在连接字符串中指定 applicationName 时出现错误。

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) {
            if (!optionsBuilder.IsConfigured) {     

optionsBuilder.UseSqlServer("Server=.\\;Database=AdventureWorksLT2012;Trusted_Connection=True;applicationName=FOO_NAME");
            }
        }

未处理的异常。 System.ArgumentException:不支持关键字:“应用程序名称”。 在 Microsoft.Data.Common.DbConnectionOptions.ParseInternal(Dictionary2 parsetable, String connectionString, Boolean buildChain, Dictionary2 同义词,布尔 firstKey) 在 Microsoft.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 同义词)

我在这里错过了什么?

【问题讨论】:

  • 确保在连接字符串中从 EF 传递应用程序名称,或者让 EF 使用它自己的登录名并对其进行过滤。但你应该已经在做这两件事了。
  • 您可能在使用 CMS 还是框架?它们可能是其他查询的来源。

标签: sql sql-server entity-framework tsql sql-server-profiler


【解决方案1】:

当您的 EF DbContext 拥有自己的连接字符串时,您可以在连接字符串中设置 ';Application Name=EF' 并在分析器中过滤此应用程序名称。

您可以在连接时的“跟踪属性”对话框中执行此操作

  • 选择事件选择选项卡
  • 单击按钮列过滤器...
  • 将连接字符串中的应用程序名称添加到属性 ApplicationName。您也可以使用其他过滤器,例如主机名,如果您选中“显示所有列”。

当您已经连接到服务器时,您可以按工具栏中的“属性”图标并执行相同操作。

【讨论】:

  • 能否请您指向分析器 GUI 中的一个位置,我可以使用它来过滤应用名称?
  • 已添加,希望对您有所帮助
  • 谢谢。还有一个问题。能否请你帮忙?我更新了我的问题。
  • 看来将applicationName 更改为Application Name 解决了这个问题。
  • 哦,对不起,这是连接字符串中的错字。我修正了我的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-04
  • 2011-05-06
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多