我一直在开发一个ASP.NET页面,并且一直在使用LINQ来处理与MS SQL服务器的通信。我对基本的SQL很好,但是使用LINQ设计查询我会好得多。我知道它们很相似,但我发现在LINQ中设计复杂查询更容易。我的问题是:有没有办法在LINQ中设计查询,然后获取它生成的SQL?我想在存储过程中嵌入SQL,因为多个页面(我的控件之外)需要进行相同的查询。
答案 0 :(得分:6)
是。 LINQ数据库上下文有一个 Log 属性,用于输出它执行的SQL。您也可以通过名为LinqPad的免费产品和名为Linqer的商业产品来实现这一目标。
答案 1 :(得分:3)
你可以通过两种方式获得:
在查询上使用ToString()来获取其SQL表单:
var query = from SomeTable中的x 其中x.SomeField == 5 选择x.SomeOtherField; Console.WriteLine(query.ToString());
答案 2 :(得分:1)
如果您想获得更深入的信息,可以使用Linq to Sql Profiler来显示所有查询以及alerts
答案 3 :(得分:1)
编写针对SQL Server执行的linq语句时,请始终在SQL Server Profiler中对它们进行观察。在SQL内部执行的解释通常会让您感到惊讶。
在性能工具/ SQL Server Profiler中启动新的跟踪。
在您的应用中执行您的查询, 抓取Profiler的输出 粘贴到SQL Server查询分析器