public override InternalPropertyBuilder Apply(InternalPropertyBuilder propertyBuilder, TimestampAttribute attribute, PropertyInfo clrProperty)
        {
            Check.NotNull(propertyBuilder, nameof(propertyBuilder));
            Check.NotNull(attribute, nameof(attribute));
            Check.NotNull(clrProperty, nameof(clrProperty));

            if (clrProperty.PropertyType != typeof(byte[]))
            {
                throw new InvalidOperationException(Strings.TimestampAttributeOnNonBinary(propertyBuilder.Metadata.Name));
            }

            propertyBuilder.ClrType(typeof(byte[]), ConfigurationSource.DataAnnotation);
            propertyBuilder.ValueGenerated(ValueGenerated.OnAddOrUpdate, ConfigurationSource.DataAnnotation);
            propertyBuilder.ConcurrencyToken(true, ConfigurationSource.DataAnnotation);

            return(propertyBuilder);
        }