RavenDB未设置存储上的所有属性

RavenDB未设置存储上的所有属性,ravendb,Ravendb,我有一个非常奇怪的场景,我试图存储域事件(我试图同时学习CQR和RavenDB)。我尝试存储的文档的基本结构是: public interface IDomainEvent { ... } public abstract class BaseDomainEvent : IDomainEvent { ... } public class DomainEventA : BaseDomainEvent { ... } public class DomainEventB : BaseDomain

我有一个非常奇怪的场景,我试图存储域事件(我试图同时学习CQR和RavenDB)。我尝试存储的文档的基本结构是:

public interface IDomainEvent { ... }    
public abstract class BaseDomainEvent : IDomainEvent { ... }
public class DomainEventA : BaseDomainEvent { ... }
public class DomainEventB : BaseDomainEvent { ... }
考虑到我想将
DomainEventA
DomainEventB
存储在RavenDB的同一个集合中,我已经成功地做到了这一点。但问题是,在集合中,我缺少
DomainEventB
的属性,并且即使我在提交存储对象的事务之前检查了属性是否已设置,也没有设置所有属性。下面的要点显示了我想做的工作示例:,在此测试中可以找到失败的测试代码:使用此RavenDB代码:

我真的无法理解这一点


编辑1:我可以补充一点,在失败的情况下,存储对象的元数据表示它是一种类型,但该类型的属性未存储。

我计划删除或投票赞成关闭,但我认为在某个时候可能会遇到这个问题。我在我的案例中找到了解决方案,就是我添加到RavenDB的对象有一个错误的equals方法,所以RavenDB认为我所有的对象都是同一个。当我在equals方法中添加一个属性以检查时,一切都开始按预期工作。

请保留,这个答案间接地帮助我在代码中发现了一个问题。