コード例 #1
0
        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);
        }
コード例 #2
0
        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;
                }
            }
        }