protected virtual Task OnAfterSaveChanges() { var domainEvntsTasks = ChangeTracker.Entries <IHaveDomainEvents>() .SelectMany(entry => entry.Entity.DomainEvents) .Select(domainEvent => _domainEventStore.RaiseAsync(domainEvent)) .ToArray(); return(Task.WhenAll(domainEvntsTasks)); }