Exemplo n.º 1
0
        public QueryTyped <TDataType> Map <TPropertyType>(Expression <Func <TDataType, object> > property, Func <MyDataRow, TPropertyType> selector)
        {
            var propertyName = ExpressionDetail.Create(property).Name;

            this.PropertyToColumnMappingDict.Add(propertyName, null);
            this.selectors.Add(propertyName, selector);
            return(this);
        }
Exemplo n.º 2
0
 public QueryTyped <TDataType> SetNotMappedProperties(params Expression <Func <TDataType, object> >[] properties)
 {
     foreach (var prop in properties)
     {
         var propName = ExpressionDetail.Create(prop).Name;
         this._notMappedProperties.Add(propName);
     }
     return(this);
 }
Exemplo n.º 3
0
 /// <summary>
 /// Ustawienie waluty dla typu Money
 /// </summary>
 /// <param name="currencyColumnName"></param>
 /// <param name="properties"></param>
 /// <returns></returns>
 public QueryTyped <TDataType> SetCurrencyColumn(string currencyColumnName, params Expression <Func <TDataType, Money> >[] properties)
 {
     foreach (var property in properties)
     {
         var propertyName = ExpressionDetail.Create(property).Name;
         this.currencyColumnMappings.Add(propertyName, currencyColumnName);
     }
     return(this);
 }
Exemplo n.º 4
0
        public QueryTyped <TDataType> Map(Expression <Func <TDataType, object> > property, string columnName)
        {
            var propertyName = ExpressionDetail.Create(property).Name;

            if (this.PropertyToColumnMappingDict.ContainsKey(propertyName))
            {
                throw new Exception($"Property [{propertyName}] already mapped.");
            }

            this.PropertyToColumnMappingDict.Add(propertyName, columnName);
            return(this);
        }
Exemplo n.º 5
0
        public virtual IDataReader <T> Map(Expression <Func <T, object> > property, int columnIndex)
        {
            var propertyName = ExpressionDetail.Create(property).Name;
            var type         = typeof(T);
            var propertyInfo = type.GetProperty(propertyName);

            _mappedProperties.Add(columnIndex, new BaseDataReaderColumnInfo {
                PropertyInfo = propertyInfo
            });

            return(this);
        }
Exemplo n.º 6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ExpressionDetail"/> class
 /// </summary>
 /// <param name="expression">A <see cref="Expression"/> instance</param>
 /// <param name="previous">A <see cref="ExpressionDetail"/>instance representing previous (inner) expression</param>
 public ExpressionDetail(Expression expression, ExpressionDetail previous)
 {
     if (expression == null)
     {
         throw new ArgumentNullException(nameof(expression));
     }
     if (!SupportedTypes.Contains(expression.NodeType))
     {
         throw new ArgumentException($"The ExpressionType:{expression.NodeType}, is not supported");
     }
     if (previous == null)
     {
         throw new ArgumentNullException(nameof(previous));
     }
     _instance = previous.Result;
 }
Exemplo n.º 7
0
        public void MapProperties(params Expression <Func <T, object> >[] propertiesToWrite)
        {
            if (_propertiesToWrite != null)
            {
                throw new Exception("Properties already mapped");
            }

            _propertiesToWrite = new List <PropertyInfo>();
            var t          = typeof(T);
            var properties = t.GetProperties();

            foreach (var prop in propertiesToWrite)
            {
                var propName = ExpressionDetail.Create(prop).Name;
                var property = properties.SingleOrDefault(x => x.Name == propName);

                _propertiesToWrite.Add(property);
            }
        }
Exemplo n.º 8
0
        public virtual BaseDataReaderColumnInfo Map(Expression <Func <T, object> > property)
        {
            var propertyName = ExpressionDetail.Create(property).Name;

            return(Map(propertyName));
        }