LINQ学习实战:查看LINQ生成SQL语句的几种方法

方式一:DataContext类的Log属性与.GetCommand方法

DataContext.Log = Console.Out;  //控制台的输出窗口显示

DataContext.GetCommand(LinqQuery).CommandText;  //返回一个查询字符串

 

方式二:Linq to SQL Debug Visualizer
**作者Scott大牛介绍:http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx
可以在 Debug 时,将 Linq to SQL 会执行的 SQL 语法显示出来,
并且可以显示执行后取得的数据,对于使用Linq to SQL 追踪与除错很有帮助
**安装方式
1.请先下载,下载位置 http://www.scottgu.com/blogposts/linqquery/SqlServerQueryVisualizer.zip
2.解压后,请将 /bin/Debug/SqlServerQueryVisualizer.dll,Copy 至 /Program Files/Microsoft Visual Studio 10.0/Common7/Packages/Debugger/Visualizers
3.重新开启 Visual Studio 2010
4.完成

**使用方式:
 在 debug 时,将鼠标移到 Linq to SQL 的 Query 上,
对放大镜图标点下去,就会显示 Linq to SQL Query语法以及实际会执行的SQL语法,
安装跟使用都很简单,但在项目Debug时很有帮助

 

方式三.使用LINQPad 官网介绍:http://www.linqpad.net/

 

方式四:使用DebuggerWriter封装好的类:源码链接http://www.u2u.info/Blogs/Kris/Lists/Posts/Post.aspx?ID=11

由于Console.Out方法在ASP.NET程序不起作用.使用这个工具类,asp.net可以选择将Log信息直接发送到Debug的输出窗口.

 

方式五:ASP.net 项目下
DataContext.Log是System.IO.TextWriter类型,所以你可以用以下的方法来做.

NorthwindDataContext db = new NorthwindDataContext(); System.IO.StreamWriter sw = new System.IO.StreamWriter(Server.MapPath("sql.log"),true); db.Log = sw; var query = db.Customers.Single(c=>c.CustomerID.Contains("s")).Skip(0).Take(10).ToList(); sw.Flush(); sw.Close();

但以上方法有个缺点,就是需要在每个实现的方法中都写这么多代码.使用起来太不方便.最好封装一个类来使用

你可能感兴趣的:(LINQ)