【问题标题】:Programmatically getting executable SQL from a LINQ query at run-time在运行时以编程方式从 LINQ 查询中获取可执行 SQL
【发布时间】:2009-08-13 15:53:27
【问题描述】:

我知道Scott Gu's LINQ to SQL visualiser,但是有没有办法在运行时获取 LINQ 表达式并做一些事情来找出完整生成的 SQL?

【问题讨论】:

  • 这不正是 LINQ to SQL 可视化器的作用吗?澄清差异可能会更好。
  • 嗯,我以为我在标题中加上了“以编程方式”,但显然我没有。我现在已经添加了。
  • @mehrdad:Josh 可能想要在代码中获取 SQL 语句并将其记录到例如错误日志什么的。交互式可视化工具对此没有太大帮助:-)
  • 请注意,可视化工具的源代码是可用的,这可能允许您将其调整为类库,以便以编程方式使用您需要的功能。

标签: c# sql linq runtime


【解决方案1】:

您可以使用 DataContext 上的 Log 功能并编写自己的代码来评估 sql。 logging SQL to the debug window 上的示例应该可以帮助您开始提取 SQL。

【讨论】:

  • 嗯,我明天会调查这个,如果它有效,我会很高兴!
【解决方案2】:

试试这个:

yourProvider.GetCommand(yourQuery).CommandText;

【讨论】:

  • 该死 - 你比我多几秒 :-)
  • 几乎,但不——这不是我可以运行的查询;它在没有实际值的情况下被参数化,就像 LINQ to SQL Visualiser 提供的那样
【解决方案3】:

如果您使用的是 LINQ2SQL,则只需从组合查询中调用 .ToString()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-04
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    相关资源
    最近更新 更多