2012-09-15 28 views
0

這對我來說沒有任何意義;我認爲只有當用戶點擊鏈接而不是創建鏈接時纔會觸發約束條件。我在這裏錯過了什麼嗎?html路由助手正在對存儲數據進行調用

隨着頁面上的鏈接數量的增加,打開一個新的數據上下文併爲每個路由鏈接運行查詢是一個巨大的性能缺陷。有沒有辦法將所有Html.RouteLink助手(和其他人)設置爲在創建鏈接時不碰到約束?

非常感謝!

回答

0

每次檢查路由約束時,都不應該執行數據庫調用,至少不是沒有正確的緩存。

而且它實際上非常有道理:

routes.MapRoute("Test1", "test1/{value}", 
    new { controller = "Home", Action = "Index" }, 
    new { value = "^[0-9]+$" } 
); 
routes.MapRoute("Test2", "test2/{value}", 
    new { controller = "Home", Action = "Index" } 
); 

現在,如果你不檢查而產生的限制,它總是用航線Test1生成的URL,但那就不是找到任何匹配的路由,當用戶點擊它。

+0

任何想法如何在這種情況下做數據庫緩存?每次使用路由並使用約束時,我都不想打開新的數據上下文。謝謝。 –