只是尝试获取由linq查询生成的sql。
答案 0 :(得分:22)
使用Linq2Sql
dc.GetCommand(query).CommandText
请参阅http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getcommand.aspx了解详情。
但我通常使用LinqPad
答案 1 :(得分:16)
有3种方法可以做到。
1.您可以使用LINQPad.It是免费的http://www.linqpad.net/
2.您可以在Sql Server中使用SQL Server Profiler(工具 - > SQL Server Profiler)
3.您可以使用Visual Studio Debugger生成T-Sql。(使用任何Visual Studio版本)
我写了一篇关于此支票的博文How to Convert Linq Entity Query into T-SQL ?
答案 2 :(得分:6)
如果您使用SQL Server作为数据库,请使用SQL Profiler
。
答案 3 :(得分:3)
这出现在Google上,这是一个由8部分组成的教程。我想它会让你忙几个小时,对我来说似乎很详细。
1:http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
3:http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx
4:http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx
祝你好运。答案 4 :(得分:2)
另一种方式
来自MSDN文章How to: Display Generated SQL (LINQ to SQL)
将DataContext.Log
属性设置为Console.Out
,您将在控制台中看到它
答案 5 :(得分:0)
我建议的最简单方法是使用Database
Log
。在初始化Log
之后放置DataContext
,您将能够在Visual Studio output
窗口中跟踪EF所做的任何事情。
DataContext db = new DataContext();
db.Database.Log = generatedSQL =>
{
Debug.WriteLine(generatedSQL);
};
答案 6 :(得分:0)
您可以在Visual Studio中使用 诊断工具 来查看生成的查询。
要启用此功能,请转到右上角,在那里您可以看到快速搜索并输入诊断工具。
在结果中,单击适当的选项,然后在下面查看生成的查询。