protected virtual bool SetIdentityStrategy(SqlServerIdentityStrategy? value)
        {
            if (value != null)
            {
                var propertyType = Property.ClrType;

                if (value == SqlServerIdentityStrategy.IdentityColumn
                    && (!propertyType.IsInteger()
                        || propertyType == typeof(byte)
                        || propertyType == typeof(byte?)))
                {
                    throw new ArgumentException(Strings.IdentityBadType(
                        Property.Name, Property.DeclaringEntityType.Name, propertyType.Name));
                }

                if (value == SqlServerIdentityStrategy.SequenceHiLo
                    && !propertyType.IsInteger())
                {
                    throw new ArgumentException(Strings.SequenceBadType(
                        Property.Name, Property.DeclaringEntityType.Name, propertyType.Name));
                }
            }

            return Annotations.SetAnnotation(SqlServerAnnotationNames.ValueGenerationStrategy, value);
        }
 public new virtual bool IdentityStrategy(SqlServerIdentityStrategy? value) => SetIdentityStrategy(value);