You can only use primary key to find data in a relational database. This works fine in many situations but in a real life complex application your application often needs to find data based on attributes other than the primary key. And, since you're keeping a lot of your data in the cache, it would be very useful if you could search the cache in this manner as well.
NCache provides exactly such facility. Click here to find out how.