首页 新闻 会员 周边

linq查看原始sql

0
悬赏园豆:5 [待解决问题]

这样语句,如何查看到实际运行的sql?

db.Tickets.Include("UserInfo").Include("TicketDetails").SingleOrDefault(o => o.TicketId == id);

红尘中迷茫的主页 红尘中迷茫 | 初学一级 | 园豆:60
提问于:2013-06-21 15:16
< >
分享
所有回答(5)
0
WuRang | 园豆:1730 (小虾三级) | 2013-06-21 15:21

有没有不用插件的方法,.net自带的?我想写到日志里调试。

支持(0) 反对(0) 红尘中迷茫 | 园豆:60 (初学一级) | 2013-06-21 15:57

@红尘中迷茫: .net没有自带 要不就只能在sql server管理器中查看监视器,里面有所有数据库操作产生的sql语句

支持(0) 反对(0) WuRang | 园豆:1730 (小虾三级) | 2013-06-21 16:00
0

SQL server 里面有监视器   sql server profiler

可以看到执行的SQL

哇~怪兽 | 园豆:622 (小虾三级) | 2013-06-21 15:34

放在虚拟主机里的程序,没那个权限。。

支持(0) 反对(0) 红尘中迷茫 | 园豆:60 (初学一级) | 2013-06-21 15:57
0

两种方式:

1、Sql自带工具-SqlProfiler

2、LinqPad

幻天芒 | 园豆:37175 (高人七级) | 2013-06-21 16:32
1

ObjectQuery.ToTraceString

geass.. | 园豆:1821 (小虾三级) | 2013-06-22 12:09
0

我是这样做的,楼主可以参考:

首先是一个辅助类

 1  /// <summary>
 2     /// Linq查询语句输出辅助类
 3     /// </summary>
 4     public class LogHelper
 5     {
 6         public static StringBuilder Log = new StringBuilder();
 7         public static TextWriter In = new StringWriter(Log);
 8 
 9         public static string GetAllLog()
10         {
11             In.Flush();
12             return Log.ToString();
13         }
14 
15         public static void Clean()
16         {
17             Log = new StringBuilder();
18             In = new StringWriter(Log);
19         }
20 
21     }

这个辅助类是这样用的:

1 var db = new DataContext();//linq to sql 数据上下文
2 db.Log = LogHelper.In;//使用辅助类
3 var data = db.Table1.Where(c =>c.Id==1662).FirstOrDefault();
4 var sql= LogHelper.GetAllLog();//得到实际运行的sql语句

完毕。

Mr.Jack | 园豆:56 (初学一级) | 2014-01-21 11:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册