如何持久化一系列对象来支持日志功能

本文关键字:支持 日志 功能 对象 持久化 一系列 | 更新日期: 2023-09-27 18:03:45

我确信这真的很简单,但是我通常在持久化数据时遇到瓶颈。我想为我的应用程序创建一种形式的"自动历史记录"。该应用程序具有通常的撤销/重做功能,该功能位于内存中,仅适用于给定会话。这个想法是基于VS2013

新的自动历史记录功能。

每次用户进行更改时,我都想保存对象的带有时间戳的副本以及一些管理数据,以便以后可以恢复。到目前为止,我考虑了:

  • 只是在内存中使用列表。但这不能在会话中保存,因此需要在开始时加载并在结束时保存。我认为随着时间的推移,它可能会变得越来越大,成为一个内存猪
  • 基于磁盘的数据结构,如bPlusDotNet或Managed ESENT
  • 一些对象数据库,如VelocityDB

但是我有一种偷偷摸摸的怀疑,我把它弄得太复杂了。我正在使用Protobuf . NET来序列化我的对象,虽然我不确定这是否与问题相关。因此,我的问题是,持久化历史对象以便以后在自动历史函数中使用它们的最佳方法是什么?

Thanks in advance

如何持久化一系列对象来支持日志功能

我认为这需要关闭。经过更多的研究,我找到了NDatabase

对于像我这样的笨蛋来说非常直接,它为一组对象提供持久性,这些对象都继承自相同的基类,但在细节上有所不同。我已经找到了更多的应用。