2012-06-12 17 views
7

Câu hỏi này đã có một câu trả lời ở đây:
view sql that linq-to-sql produces3 câu trả lờiCách để xem SQL được thực thi bởi LINQ trong Visual Studio?

Tôi tự hỏi nếu có một cách để xem T-SQL được thực thi dựa trên cơ sở dữ liệu trong Visual Studio 2010 Ultimate khi truy vấn LINQ to SQL chạy.

+0

Chạy SQL Sever profiler dựa vào cơ sở dữ liệu đó và bạn có thể ee truy vấn nào đang được thực hiện. – Shyju

+0

LINQ to SQL? EF? – jrummell

Trả lời

19

Nếu bạn có Visual Studio Ultimate, bạn có thể thấy mọi truy vấn SQL mà ứng dụng của bạn chạy trong cửa sổ IntelliTrace trong khi gỡ lỗi.

+1

Hãy nhớ rằng IntelliTrace là rất tiêu thụ tài nguyên. Tôi thường bị vô hiệu hóa. –

+0

@ Mr.TA: Đó không chỉ là Chế độ xem cuộc gọi? – SLaks

+0

Có thể - tôi chỉ vô hiệu hóa toàn bộ điều, làm cho tôi cảm thấy tốt hơn. :) –

8

Bạn có thể sử dụng SQL Server Profiler để thực hiện điều đó.

+0

Đó là một phương pháp, nhưng không phải là phương pháp duy nhất. – jrummell

+6

Đúng, nhưng sau đó tôi nghi ngờ có một vấn đề CNTT duy nhất mà chỉ có một giải pháp cho nó. –

+0

Sau đó categorically nói rằng bạn 'có' để làm một điều cụ thể có lẽ là một chút ra đánh dấu;) – MatBailie

3

Bạn có thể sử dụng Log property của DataContext.

db.Log = Console.Out; 
var custQuery = 
    from cust in db.Customers 
    where cust.City == "London" 
    select cust; 

foreach(Customer custObj in custQuery) 
    Console.WriteLine(custObj.CustomerID); 
+1

Giả sử OP đang sử dụng LINQ to SQL ... – jrummell

+0

@jrummell: Trích dẫn OP, "khi truy vấn LINQ chạy" – Andomar

+2

"Truy vấn LINQ" không rõ ràng. Ông có thể được sử dụng một bộ chuyển đổi NHibernate IQueryable, nhưng nhiều hơn LINQ to SQL hoặc Entity Framework. Hy vọng rằng, OP sẽ làm rõ và chúng tôi sẽ biết chắc chắn :) – jrummell

4

Bạn có về cơ bản hai lựa chọn:

1.) sử dụng một hồ sơ, có một miễn phí do AnjLab http://anjlab.com/en/projects/opensource/sqlprofiler

2.) sử dụng LinqPad (một lần nữa một giải pháp miễn phí) http://www.linqpad.net/

Bạn thực sự không cần Ultimate VS hoặc bất kỳ thứ gì được thanh toán như một số người đã đề xuất ...

+1

AnjLab SQL profiler đã được mua và không còn miễn phí nữa. – Talon

Các vấn đề liên quan