我正在尝试为 marten 数据库中的聚合激活快照和软删除。当我运行该项目时,我收到一个运行时错误:“AggregateProjection 无法支持软删除的聚合”。
.net版本:8
貂版本:6.3
public static class StoreOptionsExtensions
{
public static void ConfigureEventStore(this StoreOptions options)
{
options.Schema.For<MyAggregate>().SoftDeleted();
options.Projections.Snapshot<MyAggregate>(SnapshotLifecycle.Inline);
}
}
错误是:
AggregateProjection cannot support aggregates that are soft-deleted
我的问题是,是否可以同时激活快照和软删除?如果是的话我应该如何实施?
不幸的是,我们面临着同样的问题。然而,根本原因是,如果您使用任何类型的 AggregateProjection,Marten 都不支持 SoftDelete。我发现了这个问题 - https://github.com/JasperFx/marten/issues/1992 但它似乎已被关闭,因为它不再计划解决。有一种方法可以绕过它,可以自行实现 SoftDelete 或利用
CustomProjection
- https://martendb.io/events/projections/custom-aggregates.html