joliver/EventStoreのMongoDB永続エンジンを使用すると、エラーUnknown discriminator value 'MyEvent'
が発生します。私は問題がExtensionsMethods.cs未知の識別子値 'MyEvent'
public class MyClassEvent : IDomainEvent { ... }
public static Commit ToCommit(this BsonDocument doc, IDocumentSerializer serializer)
{
if (doc == null)
return null;
var id = doc["_id"].AsBsonDocument;
var streamId = id["StreamId"].AsGuid;
var commitSequence = id["CommitSequence"].AsInt32;
var events = doc["Events"].AsBsonArray.Select(e => e.AsBsonDocument["Payload"].IsBsonDocument ? BsonSerializer.Deserialize<EventMessage>(e.AsBsonDocument["Payload"].AsBsonDocument) : serializer.Deserialize<EventMessage>(e.AsBsonDocument["Payload"].AsByteArray)).ToList();
var streamRevision = doc["Events"].AsBsonArray.Last().AsBsonDocument["StreamRevision"].AsInt32;
return new Commit(
streamId,
streamRevision,
doc["CommitId"].AsGuid,
commitSequence,
doc["CommitStamp"].AsDateTime,
BsonSerializer.Deserialize<Dictionary<string, object>>(doc["Headers"].AsBsonDocument),
events);
}
私の構成で発生しthis.storeEvent.Advanced.GetFrom(new DateTime(2010, 1,1))
のようなイベントを再生するために、すべてのイベントをロードしようとすると、問題がのみ発生し、このようなものです:
Wireup.Init()
.UsingMongoPersistence(connectionName, new DocumentObjectSerializer())
.UsingBsonSerialization()
.UsingAsynchronousDispatcher()
.PublishTo(this.container.Resolve<IPublishMessages>())
.Build();
しかし、ほぼすべての種類のシリアライザオプションを試しました。
ありがとうございます。私がコミットを保存すると、mongo dbドライバはクラス自体を登録しましたが、返信(純粋な読み込み)ではマッピングが行われませんでした。 – Jacee
ありがとう、なぜこれが必要なのかわからないが – JacobE