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); }
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); }
/// <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); }
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); }
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); }
/// <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; }
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); } }
public virtual BaseDataReaderColumnInfo Map(Expression <Func <T, object> > property) { var propertyName = ExpressionDetail.Create(property).Name; return(Map(propertyName)); }