除非第一个数据库查询不引用序列化的对象成员,否则不应用约定

本文关键字:成员 约定 应用 对象 序列化 第一个 数据库 查询 引用 | 更新日期: 2023-09-27 18:21:55

使用mongodb C#驱动程序,当我将约定包中的约定添加到约定注册表时,如果我的第一个数据库查询引用了受该约定影响的序列化对象的成员,则该约定将无法正常工作。

例如,如果我注册Camel Case名称约定后的第一个查询类似于myCollection.FindAll().ToList(),那么一切都很好。

但是,如果我有一个过滤对象属性的查询,然后我尝试像myCollection.Find(myQuery).ToList()一样使用它,它就不起作用(约定没有正确映射,导致错误)。此外,从那时起,它对该集合对象不起作用。

这应该这样工作吗?如果是这样,这是否意味着我需要在注册约定后对数据库进行"伪"查询,以便它遵守我注册的约定?

除非第一个数据库查询不引用序列化的对象成员,否则不应用约定

我重读了关于如何应用约定的文章,正如评论中所指出的,这真的应该在应用程序启动中注册。我这样做了,大会的表现如预期。我仍然不完全理解它为什么会这样做的细节,但我很满意:如果我把它连接正确,它就会正确工作。