在我的控制,我有以下代碼:實體框架查詢超時
public ActionResult Syslogs(string IPAddress) {
IEnumerable<Syslogd> syslogs = db.Syslogds.Take(100).ToList();
if (!String.IsNullOrEmpty(IPAddress)) {
syslogs = db.Syslogds.Where(s => s.MsgHostname == IPAddress).Take(100).ToList();
}
return View(syslogs.ToList());
}
查詢超時每當我通過一定的價值的IPAddress
變量。我不知道爲什麼會發生這種情況,或者我可以如何防止這種情況。該值不存在於數據庫中,還是需要很長時間才能找到它?以下是錯誤消息我接收:
類型的異常 「System.Data.Entity.Core.EntityCommandExecutionException」發生在 EntityFramework.SqlServer.dll但在用戶代碼
附加沒有處理信息:執行命令 定義時發生錯誤。詳情請參閱內部例外。
內部異常:
{「超時過期超時時間已過之前的 操作完成或服務器沒有響應。」}
在一個側面說明,你總是執行,即使你是對IP過濾器覆蓋這些值的第一個查詢。您應該將第一個查詢移至else子句以避免做任何額外的不必要的工作。 – 2014-10-29 20:05:35
Syslogd有多少條記錄?數據庫是否在單獨的機器上?什麼是網絡帶寬使用? – 2014-10-29 22:02:20