如题,能否有一种工具或方法 查看如下两个语句生成的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#
sql server 不是有个那个 性能工具中有个 sql server profiler吗,看看这个是不是可以帮助到你
会转换为相应的SQL语句
你只用打个断点就可以得到对应的SQL语句了
Linq是延迟查询,真正的查询是在foreach里面才执行的
话说LZ是妹子么(口水)(口水)
执行的时候 可以看 sql的profiler
result.ToString(),或者直接在调试状态下查看 result 变量。
最终还是用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]
使用ToTraceString()方法来获取linq to entity 生成的sql语句
谢谢,如何使用,这不该问百灵的。刚问了下百度。找到一种解决方案,和sql server profiler监视到的是一样的。使用方式贴上:
var presult = (from s in db.DB_TeamTable select s);
var psql = presult.GetType().GetMethod("ToTraceString").Invoke(presult, null);
不好意思,百灵,在你回复我之前,我刚结贴。