首页 新闻 赞助 找找看

如何查看用 Linq/PLinq 语法写的查询语句,转换成的 sql 查询语句。谢谢回答。

0
悬赏园豆:20 [已解决问题] 解决于 2012-07-31 10:06

如题,能否有一种工具或方法  查看如下两个语句生成的sql 执行语句。

用的是Linq to Entity , DB_TeamTable 是数据库中存在的一张表

DB_TestEntities db = new DB_TestEntities();

1.var result = from s in db.DB_TeamTable select s; 

2.var presult = from d in db.DB_TeamTable.AsParallel() select d;

以上两句查询语句在执行时,会转换为相应的sql查询语句么,如果会,我在哪里可以查看转换后的sql语句呢?在线等,先谢过园友们的热情回答!项目用到的是Sqlserver 2008 、vs2010 C#

icyme的主页 icyme | 初学一级 | 园豆:77
提问于:2012-07-31 08:44
< >
分享
最佳答案
0

sql server  不是有个那个 性能工具中有个 sql server profiler吗,看看这个是不是可以帮助到你

收获园豆:5
chenping2008 | 大侠五级 |园豆:9836 | 2012-07-31 09:33
其他回答(5)
0

会转换为相应的SQL语句

你只用打个断点就可以得到对应的SQL语句了

Linq是延迟查询,真正的查询是在foreach里面才执行的

话说LZ是妹子么(口水)(口水)

收获园豆:5
CrazyJinn | 园豆:799 (小虾三级) | 2012-07-31 09:10
0

执行的时候 可以看  sql的profiler

收获园豆:5
Ian.w | 园豆:67 (初学一级) | 2012-07-31 09:27
0

result.ToString(),或者直接在调试状态下查看 result 变量。

收获园豆:5
Launcher | 园豆:45045 (高人七级) | 2012-07-31 09:47
0

最终还是用sql server profiler跟踪到了,这两条语句最终都生成了同样的代码。

SELECT
[Extent1].[D_Id] AS [D_Id],
[Extent1].[D_TeamName] AS [D_TeamName],
[Extent1].[D_TeamScore] AS [D_TeamScore]
FROM [dbo].[DB_TeamTable] AS [Extent1]

icyme | 园豆:77 (初学一级) | 2012-07-31 10:05
0

使用ToTraceString()方法来获取linq to entity 生成的sql语句

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-07-31 10:06

谢谢,如何使用,这不该问百灵的。刚问了下百度。找到一种解决方案,和sql server profiler监视到的是一样的。使用方式贴上:

var presult = (from s in db.DB_TeamTable select s);
var psql = presult.GetType().GetMethod("ToTraceString").Invoke(presult, null);

不好意思,百灵,在你回复我之前,我刚结贴。

支持(0) 反对(0) icyme | 园豆:77 (初学一级) | 2012-07-31 10:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册