2010-01-18 60 views
5

我一直在开发一个ASP.NET页面,并一直在使用LINQ来处理与MS SQL服务器的对话。在基本的SQL中,我确定,但是使用LINQ设计查询更好。我知道它们是相似的,但我发现在LINQ中设计复杂的查询很容易。我的问题是这样的:有没有办法在LINQ中设计查询,然后获取它生成的SQL?我想将SQL嵌入到存储过程中,因为多个页面(在我的控制之外)需要执行相同的查询。有没有办法获得由LINQ查询创建的SQL?

+0

的LINQ to SQL? LINQ to Entities? LINQ到其他东西? (顺便说一下,所有这些在本网站上都已经得到了重复回答;您可以尝试搜索。) – 2010-01-18 19:19:36

回答

6

是的。 LINQ数据库上下文有一个Log属性,它输出它执行的SQL。您也可以通过名为LinqPad的免费产品和名为Linqer的商业产品来实现。

+1

您也可以使用DataContext.GetCommand(query)。 – itowlson 2010-01-18 19:21:53

3

你可以得到它的2种方式:

  1. 使用LINQPad
  2. 使用的ToString()上查询以获得其SQL形式:

    VAR的查询=从X在SomeTable 其中x .SomeField == 5 select x.SomeOtherField; Console.WriteLine(query.ToString());

1

在编写的针对SQL Server执行的LINQ语句,总是在眼球它们SQL Server Profiler。在SQL内部执行的解释通常会让你感到惊讶。

在性能工具/ SQL Server Profiler中开始一个新的跟踪。

执行查询在你的应用程序, 抓住从探查 输出粘贴到SQL Server查询分析器

相关问题