diff --git a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs index 6ecc474d1..ceae56077 100644 --- a/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs +++ b/src/modules/Elsa.Workflows.Core/Contexts/ActivityExecutionContext.cs @@ -124,7 +124,20 @@ public partial class ActivityExecutionContext : IExecutionContext, IDisposable { var containerVariables = (Activity as IVariableContainer)?.Variables ?? Enumerable.Empty(); var dynamicVariables = DynamicVariables; - return containerVariables.Concat(dynamicVariables).DistinctBy(x => x.Name); + var mergedVariables = new Dictionary(); + + foreach (var containerVariable in containerVariables) + { + var name = !string.IsNullOrEmpty(containerVariable.Name) ? containerVariable.Name : containerVariable.Id; + mergedVariables[name] = containerVariable; + } + + foreach (var dynamicVariable in dynamicVariables) + { + var name = !string.IsNullOrEmpty(dynamicVariable.Name) ? dynamicVariable.Name : dynamicVariable.Id; + mergedVariables[name] = dynamicVariable; + } + return mergedVariables.Values; } }