2010-01-18 103 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查詢分析器

相關問題