只是试图获取linq查询生成的sql。
使用Linq2Sql
dc.GetCommand(query).CommandText
参见http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getcommand.aspx了解更多信息。
但我通常使用LinqPad
有三种方法可以做到这一点。
1.你可以使用LINQPad。它是免费的http://www.linqpad.net/
2.您可以在SQL Server(工具-->SQL Server Profiler)中使用SQL Server事件探查器
3.您可以使用Visual Studio调试器生成T-Sql。(带有任何visual studio版本)
如果使用SQL Server作为数据库,请使用SQL Profiler
。
这是在谷歌上弹出的,是一个由8部分组成的教程。我想这会让你忙上几个小时,对我来说似乎很详细
1:http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
2:http://weblogs.asp.net/scottgu/archive/2007/05/29/linq-to-sql-part-2-defining-our-data-model-classes.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
5:http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx
6:http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx
7:http://weblogs.asp.net/scottgu/archive/2007/08/23/linq-to-sql-part-7-updating-our-database-using-stored-procedures.aspx
8:http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions.aspx
祝你好运。
另一种方式
来自MSDN文章如何:显示生成的SQL(LINQ到SQL)
将DataContext.Log
属性设置为Console.Out
,您将在控制台中看到它
我建议的最简单的方法是使用Database
Log
。在初始化DataContext
之后放置Log
,您将能够在visual studio output
窗口上跟踪EF所做的一切。
DataContext db = new DataContext();
db.Database.Log = generatedSQL =>
{
Debug.WriteLine(generatedSQL);
};
您可以在Visual Studio中使用诊断工具查看生成的查询。
要启用此功能,请转到右上角,在那里您可以看到快速搜索并键入诊断工具。
在结果中,单击相应的选项,并参见下面生成的查询。