public virtual async Task GenerateAsync([NotNull] StateEntry entry, CancellationToken cancellationToken) { Check.NotNull(entry, "entry"); foreach (var property in entry.EntityType.Properties) { var isForeignKey = property.IsForeignKey(); if ((property.GenerateValueOnAdd || isForeignKey) && entry.HasDefaultValue(property)) { if (isForeignKey) { _foreignKeyValuePropagator.PropagateValue(entry, property); } else { var valueGenerator = _valueGeneratorCache.Service.GetGenerator(property); var generatedValue = valueGenerator == null ? null : await valueGenerator.NextAsync(property, _dataStoreServices, cancellationToken); SetGeneratedValue(entry, generatedValue, property); } } } }
public virtual void Generate([NotNull] StateEntry entry) { Check.NotNull(entry, "entry"); foreach (var property in entry.EntityType.Properties) { var isForeignKey = property.IsForeignKey(); if ((property.GenerateValueOnAdd || isForeignKey) && entry.HasDefaultValue(property)) { if (isForeignKey) { _foreignKeyValuePropagator.PropagateValue(entry, property); } else { var valueGenerator = _valueGeneratorCache.Service.GetGenerator(property); Debug.Assert(valueGenerator != null); var generatedValue = valueGenerator.Next(property, _dataStoreServices); SetGeneratedValue(entry, property, generatedValue, valueGenerator.GeneratesTemporaryValues); } } } }