public BooleanValueObjectPropertyModelConfiguration <T> Property(Expression <Func <T, bool> > memberSelector)
        {
            var configuration = new BooleanValueObjectPropertyModelConfiguration <T>(this, ReflectionHelper.GetProperty(memberSelector));

            PropertyModelConfigurations.Add(configuration);
            return(configuration);
        }
        public NumericValueObjectPropertyModelConfiguration <T> Property(Expression <Func <T, short> > memberSelector)
        {
            var configuration = new NumericValueObjectPropertyModelConfiguration <T>(this, ReflectionHelper.GetProperty(memberSelector));

            PropertyModelConfigurations.Add(configuration);
            return(configuration);
        }
        public ValueReadOnlyListValueObjectPropertyModelConfiguration <T> ValueObjectList <TValue>(Expression <Func <T, IValueObjectReadOnlyList <TValue> > > memberSelector)
            where TValue : DomainValueObject <TValue>
        {
            var configuration = new ValueReadOnlyListValueObjectPropertyModelConfiguration <T>(this, ReflectionHelper.GetProperty(memberSelector));

            PropertyModelConfigurations.Add(configuration);
            return(configuration);
        }