空可以插入到缓存中

本文关键字:缓存 插入 | 更新日期: 2023-09-27 18:32:45

我在 ASP.NET 网站上积极使用缓存。

但是,从 db 请求的某些对象确实不存在。例如,我正在通过查看表中ProductId=@ProductId的记录来检查特定产品是否有Discount ProductsDiscount。没有记录意味着没有折扣。

您认为将null折扣对象放入缓存中是个好主意吗?

或者我最好发明一些更好的东西(例如,使用空对象模式)。事实上,我真的不喜欢开始使用空对象模式的想法,因为它需要大量的重新设计,我想至少现在避免。

谢谢。欢迎任何想法。

附言事实上,当我尝试调用时,我什至无法将空对象放入缓存中:

HttpContext.Current.Cache.Insert("name...", null);

我收到:

值不能为空。

附言为什么 MSDN 对此行为一无所知?

空可以插入到缓存中

对于您的情况,您可以使用DBNull.Value作为"无数据"标记:

HttpContext.Current.Cache.Insert("name...", DBNull.Value);

不,你不能在缓存中放置一个空值,有什么意义?如果折扣是数值,那么缺少折扣(表中为 null)实际上表示折扣为 0% - 那么为什么不存储 0?