我在 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?