我刚开始考虑在我的一个应用程序中使用 NHibernate 二级缓存。我可能会使用NHibernate.Caches.SysCache.SysCacheProvider
依赖于 ASP.net 缓存的。
启用缓存不是问题,但我想知道如何管理缓存,例如以编程方式从缓存中删除某些实体等。
我的应用程序是某种图像数据库。用户通过后端上传图像,并可以通过访问在前端查看它/ImageDb/Show?userId=someUserId
数据不会经常变化。如果它发生变化,用户不会关心后端中名为“清除我的缓存”的按钮,该按钮会从缓存中删除该用户的缓存对象。
我在网上找到了一个解决方案,可以从 nhibernates 二级缓存中删除所有缓存的对象。但这对我来说有点太暴力了......我不想仅仅因为一个用户试图清除他自己的数据的缓存,就清除数十个用户的整个缓存。
所以我基本上想做的是:有选择地从 C# 中的 nhibernates 二级缓存中删除缓存的 db 对象。
这可能吗?我想这也取决于缓存提供程序。如果这对 ASP.net 缓存提供程序不可行,我愿意接受其他内置/开源建议。