2015-06-25 70 views
-1

爲了強制我的團隊即使對於小操作(即在其開發環境中即時返回)編寫異步代碼,我想強制設置應用程序對我們的sql執行的每個查詢的睡眠服務器...SQL Server全局睡眠

我們使用EF6。

如何使EF6的查詢生成器在語句前包含「WAITFOR DELAY」?

+4

你想在每個查詢中引入任意延遲?這似乎......適得其反。它似乎不會「迫使」開發人員對此做任何事情,它只會讓一切變得更慢。 (即使使用「異步」,它也會讓所有事情變得更慢)。似乎一盎司的代碼審查將產生比這裏的一磅解決方案更好的結果。 – David

+0

@大衛是我知道....它的價格我願意付出有一個非凍結的界面...至於代碼評論,我已經嘗試...它沒有按預期工作...人們只是沒有按照要求仔細審查... – Leonardo

回答

4

您需要創建一個Interceptor,在「執行」方法中,您可以修改正在執行的查詢並添加您想要添加的任何語句。您甚至可以檢查interceptionContext.IsAsync以查看被調用的方法是否是異步方法,並僅在非Async調用上添加延遲。

但是我同意David's comment,這不會「讓」任何人做任何事情,在檢入時進行代碼檢查會使異步採用遠高於爲程序添加任意等待。

+3

或者因爲你可以檢測它是否是異步的,如果它不是異步的,就會使其崩潰(拋出新的異常......)至少現在它們將被迫使用異步:-) – Fredou

+0

我知道它不會「製造」,但參數「我不知道調用此方法導致數據庫之旅...我雖然信息來自XPTO」將不再適用 – Leonardo