来自:http://www.yaosansi.com/post/1380.html

 

记录LINQ生成的SQL语句是常用的调试方式,而且能根据需要来优化LINQ生成的SQL语句,更能了深入的了解LINQ.

DataContext的Log属性来将LINQ to SQL生成的SQL语句格式化.

一.控制台程序(Console)

dataContext.Log = Console.Out;

二.利用GetCommand方法

dataContext.GetCommand(query).CommandText;

三.使用LINQPad (官方网站)

LINQPad支持C# 3.0 和 Framework 3.5的全部功能:

  • LINQ to SQL
  • LINQ to Objects
  • LINQ to XML

 转:查看LINQ生成SQL语句的几种方法

更多介绍请参考李永京学习LINQ工具:LINQPad

下载地址:http://www.albahari.com/LINQPad.exe

四.LINQ to SQL Debug Visualizer

ScottGu的LINQ to SQL Debug Visualizer可以在Debug过程中查看SQL语句.

介绍:http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx

下载:http://www.scottgu.com/blogposts/linqquery/SqlServerQueryVisualizer.zip

安装方法
1. 关闭 VS2008。
2. 将压缩包中的 SqlServerQueryVisualizer.dll 拷贝到 \Program Files\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\Visualizers。
3. 重启 VS2008 即可。

五.DebuggerWriter工具类

由于Console.Out方法在ASP.NET程序不起作用.

Kris Vandermotten 已经创建好了一个这个工具类, 你只要使用这样的语法:

MyDataContext db = new MyDataContext();
db.Log = new DebuggerWriter();
 

asp.net可以选择将Log信息直接发送到Debug的输出窗口.

源码:

转:查看LINQ生成SQL语句的几种方法using System;
转:查看LINQ生成SQL语句的几种方法
using System.Diagnostics;
转:查看LINQ生成SQL语句的几种方法
using System.Globalization;
转:查看LINQ生成SQL语句的几种方法
using System.IO;
转:查看LINQ生成SQL语句的几种方法
using System.Text;
转:查看LINQ生成SQL语句的几种方法
转:查看LINQ生成SQL语句的几种方法
namespace Vandermotten.Diagnostics

六.将LINQ to SQL生成的SQL语句写入日志文件

DataContext.Log是System.IO.TextWriter类型,所以你可以用以下的方法来做.

StreamWriter sw = new StreamWriter(

Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "log.txt"));

dBLinqDataContext.Log = sw;            

var query = dataContext.Customers.Single<Customer>(c=>c.CustomerID.Contains("s"))

.Skip(0).Take(10).ToList();

sw.Flush();            
sw.Close();

但以上方法有个缺点,就是需要在每个实现的方法中都写这么多代码.使用起来太不方便.参照dataContext.Log = Console.Out的表现形式

由是有了FileLog类.(当然,FileLog类除了此功能还有一些基本的记录日志的方法)

使用时直接dataContext.Log = Yaosansi.IO.FileLog.Out;即可. 默认会在桌面上生成一个名叫UnNameFile.txt的文件.

当然如果你不想使用默认的文件名和路径也可以使用dataContext.Log =new Yaosansi.IO.FileLog("FileName")的方式.

下面是FileLog类的源码:

转:查看LINQ生成SQL语句的几种方法//原文:http://www.yaosansi.com/post/1380.html
转:查看LINQ生成SQL语句的几种方法
using System;
转:查看LINQ生成SQL语句的几种方法
using System.Collections.Generic;
转:查看LINQ生成SQL语句的几种方法
using System.Text;
转:查看LINQ生成SQL语句的几种方法
using System.IO;
转:查看LINQ生成SQL语句的几种方法
转:查看LINQ生成SQL语句的几种方法
namespace Yaosansi.IO

相关文章:

  • 2022-12-23
  • 2021-07-22
  • 2021-10-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-20
  • 2022-12-23
猜你喜欢
  • 2021-10-02
  • 2021-07-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-03-04
  • 2021-10-18
相关资源
相似解决方案