Đối với bất kỳ ai chỉ cố gắng chẩn đoán một truy vấn EF Core sai một lần hoặc tương tự và không muốn thay đổi mã của họ, có một số tùy chọn:
Sử dụng SQL Server Management Studio (SSMS) SQL Profiler
Nếu bạn đã cài đặt SQL Server Management Studio (SSMS), bạn có thể kích hoạt SQL Profiler từ menu Công cụ trong SSMS:
Và sau đó bắt đầu một dấu vết mới chạy trong SQL Profiler khi nó mở ra.
Sau đó, bạn sẽ có thể thấy yêu cầu SQL đến từ EF, chúng thường được định dạng khá tốt và dễ đọc.
Kiểm tra cửa sổ đầu ra trong Visual Studio
Trong bản sao VS2019 của tôi, sử dụng EF2.2, tôi có thể thay đổi cửa sổ đầu ra để hiển thị đầu ra từ Máy chủ Web (chọn tên của ứng dụng và máy chủ web của bạn trong tổ hợp "Hiển thị đầu ra từ" ở đầu ngăn Đầu ra) và SQL gửi đi cũng được hiển thị trong đó. Tôi đã kiểm tra mã của mình và theo như tôi có thể thấy, tôi chưa làm bất cứ điều gì để kích hoạt điều đó, vì vậy tôi nghĩ rằng nó phải làm điều này theo mặc định:
Nếu bạn muốn xem các tham số được gửi đến máy chủ SQL trong các truy vấn, bạn có thể bật điều đó khi thiết lập DBContext bằng EnableSensitiveDataLogging
phương thức này, ví dụ:
services.AddDbContext<FusionContext>(options => options
.UseSqlServer(connectionString))
.EnableSensitiveDataLogging()
@Tich - Lil3p đề cập trong các nhận xét rằng họ cũng cần sử dụng công tắc để bật tính năng Gỡ lỗi SQL trong tab Gỡ lỗi của trang Thuộc tính của dự án (được đặt "sqlDebugging": true
trong LaunchSettings.json). Tôi đã kiểm tra và tôi chưa bật tính năng đó cho bất kỳ dự án nào của mình, nhưng điều đó cũng có thể đáng để thử nghiệm nếu những điều trên không phù hợp với bạn.