使用RavenDB尝试使用JOliver CommonDoman / EventStore 3.0,它可以很好地存储事件,但是当尝试使用IRepository.GetById()加载聚合根时,反序列化会出现问题。
给出错误消息 “无法将'Raven.Abstractions.Linq.DynamicList'类型的对象强制转换为'System.Collections.Generic.List`1 [EventStore.EventMessage]'。”
在DocumentObjectSerializer.cs,
public T Deserialize<T>(object document)
{
Logger.Verbose(Messages.DeserializingStream, typeof(T));
return (T)document;
}
其中 T 为List<EventStore.EventMessage>
我用来获取文档的代码是:
var r = _repository.GetById<Recipe>(command.Id);
//where _repository is CommonDomain.Persistence.EventStore.EventStoreRepository
//the EventStore wire up is,
return Wireup.Init()
.UsingRavenPersistence("RavenDB")
.UsingSynchronousDispatchScheduler(bus)
.Build();