可以将null插入Cache吗?

Bud*_*dda 2 c# asp.net caching design-patterns null-object-pattern

我在ASP.NET网站中主动使用缓存.

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

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

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

谢谢.欢迎任何想法.

PS实际上,当我尝试调用时,我甚至无法将null对象放入Cache中:

HttpContext.Current.Cache.Insert("name...", null);
Run Code Online (Sandbox Code Playgroud)

我收到:

值不能为空.

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

Gon*_*alo 5

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

HttpContext.Current.Cache.Insert("name...", DBNull.Value);
Run Code Online (Sandbox Code Playgroud)