Sử dụng công cụ bảo trì MongoDB trong joliver/EventStore gây ra lỗi Unknown discriminator value 'MyEvent'
. Vấn đề này chỉ xảy ra khi tôi cố gắng để tải tất cả các sự kiện cho phát lại những sự kiện như this.storeEvent.Advanced.GetFrom(new DateTime(2010, 1,1))
Giá trị phân biệt đối xử không xác định 'MyEvent'
Những vấn đề đang gây ra trong ExtensionsMethods.cs
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);
}
cấu hình của tôi là như thế này:
Wireup.Init()
.UsingMongoPersistence(connectionName, new DocumentObjectSerializer())
.UsingBsonSerialization()
.UsingAsynchronousDispatcher()
.PublishTo(this.container.Resolve<IPublishMessages>())
.Build();
Nhưng đã thử gần như tất cả các loại tùy chọn serializer.
Cảm ơn bạn. Khi tôi lưu các cam kết, trình điều khiển db mongo đăng ký các lớp riêng của mình, tuy nhiên khi trả lời (đọc thuần túy) ánh xạ không được thực hiện. – Jacee
Cảm ơn, mặc dù tôi không thể thấy tại sao điều này là cần thiết – JacobE