Exemplo n.º 1
0
        private void AddToMapper(MapperPropertyConfig <TModel> config)
        {
            if (_mapDict.ContainsKey(config.ColumnName))
            {
                throw new Exception("Property mapping already exists");
            }

            _mapDict.Add(config.ColumnName, config);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Adds property mapping info
        /// </summary>
        /// <typeparam name="TProperty">Type of property, also column</typeparam>
        /// <param name="propertySelector">Target property selector</param>
        /// <param name="columnName">Column name</param>
        /// <returns>Itself</returns>
        public MapperConfig <TModel> MapProperty <TProperty>(Expression <Func <TModel, TProperty> > propertySelector, string columnName)
        {
            var setter = propertySelector.BuildSetter();
            var getter = propertySelector.BuildGetter();

            var mapConfig = new MapperPropertyConfig <TModel, TProperty>(columnName, setter, getter);

            AddToMapper(mapConfig);

            return(this);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Adds property mapping info with different types
        /// </summary>
        /// <typeparam name="TProperty">Type of property</typeparam>
        /// <typeparam name="TColumn">Type of column</typeparam>
        /// <param name="propertySelector">Target property selector</param>
        /// <param name="columnName">Column name</param>
        /// <param name="mapperToColumn">Mapper from property to column</param>
        /// <param name="mapperToProperty">Mapper from column to property</param>
        /// <returns>Itself</returns>
        public MapperConfig <TModel> MapProperty <TProperty, TColumn>(Expression <Func <TModel, TProperty> > propertySelector, string columnName, Func <TProperty, TColumn> mapperToColumn, Func <TColumn, TProperty> mapperToProperty)
        {
            Expression <Func <TProperty, TColumn> > mapperToColumnExp   = x => mapperToColumn(x);
            Expression <Func <TColumn, TProperty> > mapperToPropertyExp = x => mapperToProperty(x);

            var setter = propertySelector.BuildSetter(mapperToPropertyExp);
            var getter = propertySelector.BuildGetter(mapperToColumnExp);

            var mapConfig = new MapperPropertyConfig <TModel, TColumn>(columnName, setter, getter);

            AddToMapper(mapConfig);

            return(this);
        }