Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menyelesaikan Tamat Masa Pertanyaan EF 6 Disebabkan oleh Menghidu Parameter?
Isu anda dengan tamat masa pertanyaan EF 6, walaupun SQL cekap dalam SSMS, mencadangkan parameter sniffing. Untuk menyelesaikan masalah ini, pertimbangkan perkara berikut:
Bolehkah EF Membenamkan Petunjuk "OPTION RECOMPILE"?
Ya, EF 6 membenarkan pemintasan perintah SQL sebelum pelaksanaan. Anda boleh menambah pembayang "OPTION RECOMPILE" dengan melaksanakan IDbCommandInterceptor. Berikut ialah contoh pelaksanaan:
public class OptionRecompileHintDbCommandInterceptor : IDbCommandInterceptor { public void AddQueryHint(IDbCommand command) { if (command.CommandType != CommandType.Text || !(command is SqlCommand)) return; if (command.CommandText.StartsWith("select", StringComparison.OrdinalIgnoreCase) && !command.CommandText.Contains("option(recompile)")) { command.CommandText = command.CommandText + " option(recompile)"; } } // Implementation of other interface methods... }
Untuk menggunakan pemintas ini, cuma tambahkannya pada aplikasi anda pada permulaan:
DbInterception.Add(new OptionRecompileHintDbCommandInterceptor());
Pertimbangan Lanjut
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyelesaikan Tamat Masa Pertanyaan EF 6 Disebabkan oleh Menghidu Parameter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!