您的位置:首页 > 数据库

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

2012-02-15 17:15 411 查看

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

分类:C#|DOTNET发布:yaosansi浏览:日期:2008年9月25日

转载请标明出处:http://www.yaosansi.com

原文:http://www.yaosansi.com/post/1380.html

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

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

一.控制台程序(Console)

dataContext.Log=Console.Out;


二.利用GetCommand方法

dataContext.GetCommand(query).CommandText;

三.使用LINQPad(官方网站)

LINQPad支持C#3.0和Framework3.5的全部功能:

LINQtoSQL

LINQtoObjects

LINQtoXML

usingSystem;
usingSystem.Diagnostics;
usingSystem.Globalization;
usingSystem.IO;
usingSystem.Text;

namespaceVandermotten.Diagnostics

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

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

StreamWritersw=newStreamWriter( Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop),"log.txt"));
dBLinqDataContext.Log=sw;

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

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

[code]sw.Flush();
sw.Close();

[/code]


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

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

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

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

下面是FileLog类的源码:


//原文:http://www.yaosansi.com/post/1380.html
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
usingSystem.IO;

namespaceYaosansi.IO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: