我们使用 LiteDb 来存储对象。
我们一直遇到的一个问题是,人们正在创建包含只有公共 getter 的属性的对象。这意味着从数据库恢复对象时不会填充此属性。
默认状态下的 LiteDb 不会通过异常或其他方式通知我们有关此问题的信息。有可能改变这个吗?
TLDR:我们想找到一种方法,让 LiteDb 以某种方式通知我们,当一个对象在内部从 BSON 复活时无法设置属性。
LiteDB 适用于使用类从 POCO 类转换而来的文档BsonMapper
。BsonMapper
从实体类映射属性并转换为文档字段。当前版本 (v2) 支持此规则:
BsonMapper.ToDocument()
按照以下约定,自动将类的每个属性转换为文档字段:
[BsonIgnore]
以不映射到文档字段[BsonField]
以自定义文档字段的名称您可以使用 BsonMapper 全局实例 ( BsonMapper.Global
) 或自定义实例并传递给LiteDatabase
构造函数。将此实例保存在一个位置,以避免每次使用数据库时重新创建所有映射。
在一些用户请求后,下一个版本 (v3) 将 BsonMapper 作为内部插件线程化,并将支持更多选项,例如:
IBsonMapper
使用外部JSON.NET
支持序列化的自定义实现。