2

ASP.NET Web サイトでキャッシュを積極的に使用しています。

ただし、db から要求された一部のオブジェクトは実際には存在しません。たとえば、テーブル内のDiscountレコードを見て、特定の製品のがあるかどうかを確認しています。記録がないということは、割引がないということです。ProductId=@ProductIdProductsDiscount

null割引オブジェクトをキャッシュに入れるのは良い考えだと思いますか?

または、より良いものを発明した方がよいでしょう (たとえば、null オブジェクト パターンを使用します)。実際、null-object パターンの使用を開始するという考えはあまり好きではありません。少なくとも今は避けたい多くの再設計が必要になるからです。

ありがとう。どんな考えでも大歓迎です。

PS実際、呼び出しようとすると、nullオブジェクトをキャッシュに入れることさえできません。

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

私は受け取ります:

値を null にすることはできません。

PPS なぜ MSDN はこの動作について何も言わないのですか?

4

2 に答える 2

5

あなたの場合、DBNull.Value「データなし」マーカーとして使用できます。

HttpContext.Current.Cache.Insert("name...", DBNull.Value);
于 2012-04-30T04:20:56.977 に答える
1

いいえ、キャッシュにnullを入れることはできません。ポイントは何でしょうか。割引が数値の場合、割引がない(テーブルでnull)ということは、実際には0%の割引を示しているので、0を格納してみませんか?

于 2012-04-30T03:43:50.047 に答える