protected string GetFieldNameCached(Expression columnExpression) { string fieldName; if (FieldNameCache.ContainsKey(columnExpression)) { fieldName = FieldNameCache[columnExpression]; } else { fieldName = _expressionUtils.GetFieldName(columnExpression); FieldNameCache.Add(columnExpression, fieldName); } return(fieldName); }
public void MapFields <T>(IDataRecord reader, PropertyInfo[] properties, string entityTypeName, T entity) where T : new() { for (var i = 0; i < reader.FieldCount; i++) { var value = reader[i]; if (value == DBNull.Value) { continue; } var fieldName = reader.GetName(i); var fieldNameCacheKey = entityTypeName + fieldName; string propName; if (FieldNameCache.ContainsKey(fieldNameCacheKey)) { propName = FieldNameCache[fieldNameCacheKey]; } else { propName = fieldName.GetPropNameFromFieldName(entityTypeName); FieldNameCache.Add(fieldNameCacheKey, propName); } for (var j = 0; j < properties.Length; j++) { var property = properties[j]; if (property.Name != propName) { continue; } property.SetValue(entity, value, null); break; } } }