protected IdOptions Key <TOut>(Expression <Func <T, TOut> > expression)
        {
            var property = (PropertyMap)PropertyMapBuilder.BuildMap(expression);

            GuardForDuplicatePropertyMap(property);
            Keys.Add(property);
            return(new IdOptions(property));
        }
        /// <summary>
        /// Fluently, maps an entity property to a column
        /// </summary>
        protected PropertyMap Map <TOut>(PropertyInfo propertyInfo, Expression <Func <T, TOut> > expression)
        {
            var result = PropertyMapBuilder.BuildMap(expression);

            GuardForDuplicatePropertyMap(result);
            Properties.Add(result);
            return((PropertyMap)result);
        }