我见过很多人将DataTables存储到缓存中的例子,但我只是想知道,适用于Session的Cache是否也适用相同的规则?在一个规则,我最关心的是:将DataTable存储在缓存中是否是错误的?
不可序列化对象不要存储到会话中。仅仅因为你可以并不意味着它就能保证工作(我从中学到了这一点)。
所以,最后我的问题是:
你能不可序列化对象存储到缓存?
我reasearched这一段时间,阅读了许多帖子,甚至阅读有关缓存的章节中我的ASP.NET 3.5的书,我不能在任何地方找到它。
由于我在怀疑,我打算把我的DataTable到DataSet,然后到缓存中,但这个必要吗?
谢谢。
+1“用于存储数据集而不是数据表将不会发生什么变化” – David 2011-03-03 22:59:53
感谢您的回复,并为我解决这个问题。这是一个相关的问题。它不喜欢将数据存储在Cache变量中,如下所示:“Cache [Session.SessionID +”variableName“] = object”。这里的目标是避免在会话中存储不可序列化的对象(我正在使用SQL Server进行会话管理),但也避免多个会话操纵该对象。这是一种不好的做法吗? – dyslexicanaboko 2011-03-06 02:42:07
@dyslexicanaboko - 缓存仅用于快速访问实际存储在其他位置的数据*。它不应该是给定数据的唯一存储空间。为什么?因为它可以随时由ASP.NET出于某种原因清空(太多的内存,CPU等)。缓存访问应始终采用以下形式:if(数据不在缓存中)然后(从存储读取数据,缓存数据,并返回数据)。 – 2011-03-06 07:10:24