更新序列化对象Blob

时间:2019-02-22 19:01:24

标签: c# sqlite json.net

我正在使用sqlite3为我们的应用程序实现键值持久性存储。

KeyValueTable使用以下命令创建:

CREATE TABLE KeyValueTable ( ObjectName TEXT PRIMARY KEY NOT NULL, ObjectValue BLOB)

Get/Set键值的API具有以下签名:

bool GetValue<T>(string key, out T value);
bool SetValue<T>(string key, T value);

因此,您可以看到我可以使用此API获取并设置整个对象。对于序列化,我正在使用Newtonsoft.Json.JsonConvert.SerializeObject

以使用上述API和序列化存储的以下类为例:

public class HistoryLog
{ 
  public string Data { get; set; }
  public long Id { get; set; }
  public long Sequence { get; set; }
  public DateTime StartDateTime { get; set; }
  public DateTime EndDateTime { get; set; }
}

实现的问题在于,每次需要更新单个字段时,都必须序列化整个对象并将其写入数据库。

是否有一种方法可以缓存序列化对象并在需要时更新各个字段,并将此缓存的序列化对象写入数据库?

这样,我每次需要更新成员字段时都可以保存序列化。

0 个答案:

没有答案