【问题标题】:LINQ Cache issueLINQ 缓存问题
【发布时间】:2010-07-23 09:32:40
【问题描述】:

我对 LINQ 很陌生,并且对似乎不规则的内容缓存有疑问。有问题的网站现在有 6 个不同主题的内容区域,有时内容只是空白或所有 6 个区域的内容相同。随着时间的推移,它会自行解决这个问题,或者修复它的唯一其他方法是回收应用程序池:(

试过了

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

【问题讨论】:

  • 我很确定您在最后一句中的意思是“不能”:-)。要回答这个问题,我们需要更多信息。
  • 能否请您发布您的 LINQ 代码以及将结果分配给各个内容区域的代码?
  • 为一个页面添加上面的代码,该页面通过其 ID 从数据库中提取讨论。基本上,即使有内容,这个函数也不返回任何内容:(
  • 你是指LINQ,还是LINQ to SQL?
  • LINQ to SQL 抱歉,我没有对系统的这一部分进行编码,所以它对我来说是全新的。这是否有可能是应用程序池的配置错误或服务器问题?因为代码大部分时间都在工作!

标签: asp.net vb.net linq


【解决方案1】:

您尚未向我们展示 DBLocal 实例的生命周期。最长应该是每个请求,理想情况下应该是每个工作单元。

您没有向我们展示将讨论分配到内容区域的代码,也没有向我们展示调用此方法的代码(调用频率如何以及该代码从何处获取 Id?)

考虑这些情况。

  • 如果没有匹配的实例,SingleOrDefault 返回 null。
  • 如果有多个匹配实例,则抛出 SingleOrDefault。

【讨论】:

  • ID 是使用“Request.QueryString”从 URL 返回的,它触发了一个名为 updatepage(id) 的函数。然后像上面的代码一样定义了discussionDetails,然后它替换了页面上的一些HTML关键字,如下所示:strHTML = strHTML.Replace("#NUMBER_OF_VIEWS", discussionDetails.NumberOfViews.ToString())
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 2011-08-12
  • 2011-05-17
  • 2012-05-20
  • 1970-01-01
相关资源
最近更新 更多