gpt4 book ai didi

RavenDB 不会在商店中设置所有属性

转载 作者:行者123 更新时间:2023-12-04 05:44:52 25 4
gpt4 key购买 nike

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

public interface IDomainEvent { ... }    
public abstract class BaseDomainEvent : IDomainEvent { ... }
public class DomainEventA : BaseDomainEvent { ... }
public class DomainEventB : BaseDomainEvent { ... }

鉴于我想存储 DomainEventADomainEventB在 RavenDB 的同一个集合中,我已经设法做到了。但问题是在集合中我缺少 DomainEventB 的属性,即使我在提交存储对象的事务之前检查了属性是否已设置,但并非所有属性都已设置。以下要点显示了我想要做的工作示例: https://gist.github.com/2830093 ,而我失败的测试代码在这个测试中: https://github.com/mastoj/TJ.CQRS/blob/ravenfail/TJ.CQRS.RavenEvent.Tests/RavenEventStoreTests.cs正在使用这个 RavenDB 代码: https://github.com/mastoj/TJ.CQRS/blob/ravenfail/TJ.CQRS.RavenEvent/RavenEventStore.cs .

我真的无法理解这一点。

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

最佳答案

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

关于RavenDB 不会在商店中设置所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10805255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com