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); var generatedValue = valueGenerator == null ? null : valueGenerator.Next(property, _dataStoreServices); SetGeneratedValue(entry, generatedValue, property); } } } }
private static async Task PropagateValue( ForeignKeyValuePropagator valuePropagator, StateEntry dependentEntry, IProperty property, bool async) { if (async) { await valuePropagator.PropagateValueAsync(dependentEntry, property); } else { valuePropagator.PropagateValue(dependentEntry, property); } }