日期:2014-05-20  浏览次数:20973 次

谁知道vs2010中的linq如何查看生成的sql语句
如题

------解决方案--------------------
使用Linq时查看生成的sql语句


linq使用对象的方式来操作数据库。最后根本的还是生成原始的sql。但是对象的方式掩盖了很多原本的sql面貌可能会是我们不明白对应的sql是什么。还好linq可以输出sql语句 &<60;&<60;&<60;&<60; 
DataClassesDataContext dc = new DataClassesDataContext();
这个对象提供的日志功能。就是输出对应的sql语句。在控制台应用程序下。使用dc.console(有误)可以直接输出显示对应的sql语句。
在windonw和web程序下面可以建立一个txt文件日志。把生成的sql记录下来。代码比较简单了
DataClassesDataContext dc = new DataClassesDataContext();
 StreamWriter sw = new StreamWriter(Server.MapPath("sqlLog.txt"), true); // Append
 dc.Log = sw;
 //然后是linq的相关数据操作
 
sw.Flush();
 sw.Close();
就这样对应的sql语句就记录到sqlLog.txt文件中了。
我们可能会发现生成的sql在我们意料之外。呵呵。我的感觉是这样
------解决方案--------------------
查看LINQ生成SQL语句的几种方法

http://hi.baidu.com/king%B3%CC%D0%F2%C8%CB%C9%FA/blog/item/9d2696f03c9e05ca7831aa79.html
------解决方案--------------------
学习了!!帮顶!!
------解决方案--------------------
探讨
使用Linq时查看生成的sql语句


linq使用对象的方式来操作数据库。最后根本的还是生成原始的sql。但是对象的方式掩盖了很多原本的sql面貌可能会是我们不明白对应的sql是什么。还好linq可以输出sql语句 &amp;<60;&amp;<60;&amp;<60;&amp;<60;
DataClassesDataContext dc = new DataClassesDataC……

------解决方案--------------------
单步调试就看到了
------解决方案--------------------
LINQ to SQL 和 Entity Framework 都能看得到生成的 ESQL ,帮助文档中都有,好像是什么 Command 属性,要查一下文档才知道。

不过,最方便、最直接、最终的还是对SQL Server进行跟踪,在 SQL Server管理器的“工具-->SQL Server Profiler”中。
------解决方案--------------------
今天为了看一个语句的TSQL,弄得恼火。
------解决方案--------------------
顶了顶了顶了顶了顶了顶了
------解决方案--------------------
linq中有方法的例如
DataContext context = new DataContext(connectionString);
Table<OrderDetail> details = context.GetTable<OrderDetail>();

context.GetCommand(details).CommandText //获得生成的sql 语句
------解决方案--------------------
加个日志 呵呵
------解决方案--------------------
mark!