![]() |
1
22
编辑:等等,你说的是Linq to对象?不,那是不可能的 一 . 无法将LINQ到对象查询的表达式树转换为表示查询某些数据库的表达式树。 编辑:不要写你自己的ORM。对于这个问题,已经有了行之有效的解决方案。你再解决这个问题就是在浪费价值。如果要使用自己的ORM,将表达式转换为SQL语句,则必须编写自己的提供程序。这里有一个 walkthrough 在msdn上这样做。 但说真的,不要写自己的ORM。五年前,NHibernate和Linq-to-SQL出现并成熟了,很好。但现在不行。没办法。 此答案的其余部分假定您询问的是有关Linq to SQL的问题。 我知道有两种方法。 第一:
设置
这将在执行SQL语句时将其打印到控制台。有关此功能的更多信息,请参阅
MSDN
. 其他地方有
examples
属于
第二: 使用 LINQ to SQL Debug Visualizer 来自斯科特·古思里。这允许您通过Visual Studio中的调试器查看SQL语句。此选项的优点是,您可以在不执行查询的情况下查看SQL语句。甚至可以执行查询并在可视化工具中查看结果。 一 可能不可能,但肯定很难。 |
![]() |
2
15
编辑第2页: 更新和澄清完全改变了问题。 听起来你在重新设计方向盘,尝试完成linq-to-sql和linq-to-entities已经完成的工作。例如,提供程序检查表达式树并将某些函数映射到SQL Server。您将承担一项微软已经提供给我们并经过广泛测试的大任务。 您最好使用现有的ORM解决方案,无论是微软的还是NHibernate等。 编辑第1页: 找到了它,我知道我以前看到过一些东西,但我没想到。 你可以使用 DataContext.GetCommand method 要获取生成的SQL,请执行以下操作:
此示例从AdventureWorks数据库返回以下SQL:
另一个用于确定生成语句的选项将通过IntelliTrace(以前称为历史调试器)在VS2010中提供。有关更多信息和截图,请参阅以下博客文章: Debugging LINQ to SQL queries using the Historical Debugger . 不过,这只在调试过程中很好,并不能提供一种以编程方式访问它的方法。 |
![]() |
3
1
可以在数据库上启动SQL Server事件探查器来跟踪LINQ查询。 |
![]() |
4
0
我想这位先生的方法是最好的 http://damieng.com/blog/2008/07/30/linq-to-sql-log-to-debug-window-file-memory-or-multiple-writers
|
![]() |
5
0
我发现一个更简单的方法是使用命令窗口,而您不需要输入任何额外的代码。在这里,您可以将名为query的LINQ语句打印到查询窗口: 是吗?((system.data.objects.objectquery)查询).totraceString() |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |