【问题标题】:How do I clear out a Akavache database?如何清除 Akavache 数据库?
【发布时间】:2015-02-15 02:49:25
【问题描述】:

我正在使用 Akavache 缓存本地对象。我希望能够删除数据库中的所有内容(就好像它是第一次运行程序一样)。我见过 Vacuum 方法,但这只会删除过期的旧项目。清理所有东西的简单方法是什么?

【问题讨论】:

    标签: akavache


    【解决方案1】:

    @SmartyP 和@fenix2222,

    我必须执行以下操作才能永久删除数据:

    BlobCache.LocalMachine.InvalidateAll();
    BlobCache.LocalMachine.Vacuum();
    

    看起来好像 InvalidateAll() 基本上将所有内容标记为过期,但您仍然必须使用 Vacuum() 删除过期的项目。

    【讨论】:

      【解决方案2】:

      原来它就在那里,我只是看不到它!

      BlobCache.UserAccount.InvalidateAll();
      

      成功了!

      【讨论】:

      • 我注意到这似乎并没有真正将清除保留到数据库中。再次运行应用程序而不调用它会从调用 InvalidateAll() 之前拉回相同的缓存数据。在 InvalidateAll() 调用之后,我尝试同时使用 Flush() 和 Vacuum(),但没有成功。只有卸载应用程序或更改缓存密钥才能让我停止使用缓存数据,而无需每次调用​​ InvalidateAll()。
      • 有趣。在我的 win 8.1 应用程序中,数据永远消失了。您可以尝试编写一个小测试用例。计数是否被隔离,看看它是否发生在那里?对于我的应用程序,我使用的是 Rx,因此同时发生了很多事情,我在调试这样的事情时遇到了很多麻烦。 :(
      • @SmartyP 这是一个老帖子,但是你有没有找到清除数据的方法。无论我做什么,它都会在下一次部署后返回
      • @fenix2222,是的,如您所见,您是第二个注意到这一点的人。我没有遇到过这个问题——数据只是“消失”了。我希望我能提供帮助,除了整理一个小测试用例之外,我真的猜不出任何东西。 :(
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 2014-01-04
      • 1970-01-01
      相关资源
      最近更新 更多