views:

263

answers:

2
+1  Q: 

C# Caching in BLL

I am trying to implement caching in an web application. The caching is to be done in the BLL.

The BLL method signiture is

public static List<Ailias> Select(List<Filter> filters) 

and at the moment simply calls the corresponding method in the DAL.

The issue I'm having is my cache dependancy will be the filters object, whenever the filters object differs, a new DAL call should be made.

How can i add this dependency, all I can find in the docs is a dependancy on a file?

A: 

There is, AFAIK two CacheDependancies pre-defined (File and Sql) however there is nothing to stop you implementing your own CacheDependancy as described in this link

Jamiec
A: 

Cache dependencies are simply a background method of unloading items from cache. It means putting cache management logic in another system/process. It can work, but it can also introduce more complexity than necessary.

"...whenever the filters object differs..."

Differs from what? Anything used previously in that method call? Sounds like your List collection is your cache key.

Consider implementing a unique hash key on the List collection, and maintain two items in your cache -- the cache key from your filter with a static name like "list-alias-filter-key", and the List collection.

When you make subsequent calls to the method, compare the List unique hash key (cache key) to the key in "list-alias-filter-key". If they're the same, you know you can safely pull the cached value for List. If they differ, requery using your new List collection and reset the two values in the cache.

jro