2010-07-23 112 views
0

我對LINQ來說很新,並且看起來像是不規則的內容緩存。有問題的網站現在有6個不同主題的內容區域,在奇怪的場合,內容只是空白或沒有相同內容的所有6個區域。它本身將隨着時間的推移或其他唯一的辦法解決它是回收應用程序池:(LINQ緩存問題

使用

DBLocal.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues試過清理這個問題,RET)

但是這引起了類似的問題。

有沒有其他人遇到這個問題,因爲我似乎無法在網上找到任何關於它

感謝 克林頓

添加的代碼:

Dim discussionDetails As Model.Discussion = Services.Discussion.getById(discussionId) 


Public Function getById(ByVal discussionId As Integer) As Model.Discussion 
Dim _discussion As Model.Discussion = DBLocal.Discussions.SingleOrDefault(Function(p) p.DiscussionId.Equals(discussionId)) 
Return _discussion 
End Function 
+0

我很確定你的意思是「不能」在最後一句:-)。 要回答這個問題,我們需要更多的信息。 – 2010-07-23 09:46:54

+0

您可以發佈您的LINQ代碼以及將結果分配給各種內容區域的代碼嗎? – 2010-07-23 10:07:30

+0

將上面的代碼添加到通過其ID標識數據庫的討論頁面。 基本上這個功能沒什麼 – Clinton 2010-07-23 11:12:57

回答

0

您還沒有表現出我們的DBLocal實例的生命週期。它應該是最長的每個請求,並且理想地是每個單元的工作。

你還沒有告訴我們,討論分配給內容區域中的代碼,也沒有調用此方法的代碼(它是如何頻繁地被調用,哪裏該代碼得到IDS?)

考慮這些案例。

  • 如果沒有匹配的實例,SingleOrDefault返回null。
  • 如果存在多個匹配實例,SingleOrDefault會拋出。
+0

Id是使用「Request.QueryString」從URL返回的,它會觸發一個名爲updatepage(id ) 然後discussionDetails被定義爲在上面的代碼中,然後它替換頁面上的一些HTML關鍵字,如下所示: strHTML = strHTML.Replace(「#NUMBER_OF_VIEWS」,discussionDetails.NumberOfViews.ToString()) – Clinton 2010-07-23 12:22:42