У меня действительно странный сценарий, где я пытаюсь хранить события домена (я одновременно изучаю CQRS и RavenDB). Основная структура документов я стараюсь магазин:RavenDB не задает все свойства на складе
public interface IDomainEvent { ... }
public abstract class BaseDomainEvent : IDomainEvent { ... }
public class DomainEventA : BaseDomainEvent { ... }
public class DomainEventB : BaseDomainEvent { ... }
Учитывая, что я хочу, чтобы хранить DomainEventA
и DomainEventB
в той же коллекции в 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.
Я действительно не могу опустить голову вокруг этого.
EDIT 1: Я могу добавить, что в сценарии сбоя метаданные сохраненного объекта говорят, что это один тип, но свойства для этого типа не сохраняются.
Обратите внимание, что этот ответ помог мне косвенно найти проблему в моем коде. –