可以零插入缓存?(Can null be inserted into Cache?)

2019-09-16 21:13发布

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

虽然,从数据库请求的一些对象是真的存在。 举例来说,我正在检查是否有Discount通过寻找与记录特定产品的ProductId=@ProductIdProductsDiscount表。 记录的缺失意味着没有折扣。

你是否认为这是把一个好主意null折扣对象到缓存?

或者,我会(使用空对象模式,例如)更好地创造更好的东西。 其实,我真的不喜欢的想法开始使用空对象模式,因为这将需要大量的重新设计的,我想避免至少现在。

谢谢。 任何想法都欢迎。

PS事实上,我甚至不能把空对象到缓存中,当我尝试拨打:

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

我收到:

值不能为空。

PPS为什么MSDN并不能说明这种行为?

Answer 1:

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

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


Answer 2:

不,你不能把一个空的缓存中,会是什么意义呢? 如果折扣是一个数值,则缺少的折扣(在你的桌子空)的真表示0%的折扣 - 为什么不存储0?



文章来源: Can null be inserted into Cache?