From fe4960cec5e31b8cc8cd332d138dee7b894fe9d7 Mon Sep 17 00:00:00 2001 From: Anne Erdtsieck Date: Fri, 24 Jan 2025 17:59:15 +0100 Subject: [PATCH] #3636 live projection should not call ApplyChangesAsync/store --- src/Marten/Events/Aggregation/CustomProjection.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Marten/Events/Aggregation/CustomProjection.cs b/src/Marten/Events/Aggregation/CustomProjection.cs index 5434135d18..bff1881c72 100644 --- a/src/Marten/Events/Aggregation/CustomProjection.cs +++ b/src/Marten/Events/Aggregation/CustomProjection.cs @@ -376,9 +376,15 @@ async ValueTask ILiveAggregator.BuildAsync(IReadOnlyList eve var documentSessionBase = session as DocumentSessionBase ?? (DocumentSessionBase)session.DocumentStore.LightweightSession(); var slice = new EventSlice(default, session, events); - await ApplyChangesAsync(documentSessionBase, slice, cancellation).ConfigureAwait(false); - - ApplyMetadata(slice.Aggregate, events.Last()); + if (Lifecycle == ProjectionLifecycle.Live) + { + slice.Aggregate = await BuildAsync(session, slice.Aggregate, slice.Events()).ConfigureAwait(false); + ApplyMetadata(slice.Aggregate, events.Last()); + } + else + { + await ApplyChangesAsync(documentSessionBase, slice, cancellation).ConfigureAwait(false); + } return slice.Aggregate; }