コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
0
 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);
     }
 }