コード例 #1
0
        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);
                    }
                }
            }
        }
コード例 #2
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);
                        Debug.Assert(valueGenerator != null);

                        var generatedValue = valueGenerator.Next(property, _dataStoreServices);
                        SetGeneratedValue(entry, property, generatedValue, valueGenerator.GeneratesTemporaryValues);
                    }
                }
            }
        }