Beispiel #1
0
        public ColumnInfo GetColumnInfo(PropertyInfo pocoProperty)
        {
            ColumnInfo column = new ColumnInfo();
            object[] columnNameAttributes = pocoProperty.GetCustomAttributes(typeof(ColumnNameAttribute), true);
            if (columnNameAttributes.Length > 0)
            {
                var columnNameAttribute = (ColumnNameAttribute)columnNameAttributes[0];
                column.ColumnName = columnNameAttribute.ColumnName;
            }

            return column;
        }
Beispiel #2
0
        /// <summary>
        ///     Creates and populates a ColumnInfo from the attributes of a POCO property.
        /// </summary>
        /// <param name="propertyInfo">The property whose column info is required</param>
        /// <returns>A ColumnInfo instance</returns>
        public static ColumnInfo FromProperty(PropertyInfo propertyInfo)
        {
            // Check if declaring poco has [Explicit] attribute
            var explicitColumns =
                propertyInfo.DeclaringType.GetCustomAttributes(typeof(ExplicitColumnsAttribute), true).Length > 0;

            // Check for [Column]/[Ignore] Attributes
            var colAttrs = propertyInfo.GetCustomAttributes(typeof(ColumnAttribute), true);
            if (explicitColumns)
            {
                if (colAttrs.Length == 0)
                    return null;
            }
            else
            {
                if (propertyInfo.GetCustomAttributes(typeof(IgnoreAttribute), true).Length != 0)
                    return null;
            }

            var ci = new ColumnInfo();

            // Read attribute
            if (colAttrs.Length > 0)
            {
                var colattr = (ColumnAttribute) colAttrs[0];
                ci.InsertTemplate = colattr.InsertTemplate;
                ci.UpdateTemplate = colattr.UpdateTemplate;
                ci.ColumnName = colattr.Name == null ? propertyInfo.Name : colattr.Name;
                ci.ForceToUtc = colattr.ForceToUtc;
                if ((colattr as ResultColumnAttribute) != null)
                    ci.ResultColumn = true;
            }
            else
            {
                ci.ColumnName = propertyInfo.Name;
                ci.ForceToUtc = false;
                ci.ResultColumn = false;
            }

            return ci;
        }
 /// <summary>
 ///     Get information about the column associated with a property of a POCO
 /// </summary>
 /// <param name="pocoProperty">The PropertyInfo of the property being queried</param>
 /// <returns>A reference to a ColumnInfo instance, or null to ignore this property</returns>
 /// <remarks>
 ///     To create a ColumnInfo from a property's attributes, use PropertyInfo.FromProperty
 /// </remarks>
 public ColumnInfo GetColumnInfo(PropertyInfo pocoProperty)
 {
     var ci = new ColumnInfo();
     return MapColumn(ci, pocoProperty.DeclaringType, pocoProperty) ? ci : null;
 }
Beispiel #4
0
 /// <summary>
 ///     Get information about the column associated with a property of a POCO
 /// </summary>
 /// <param name="pocoProperty">The PropertyInfo of the property being queried</param>
 /// <returns>A reference to a ColumnInfo instance, or null to ignore this property</returns>
 /// <remarks>
 ///     To create a ColumnInfo from a property's attributes, use PropertyInfo.FromProperty
 /// </remarks>
 public virtual ColumnInfo GetColumnInfo(PropertyInfo pocoProperty)
 {
     return(ColumnInfo.FromProperty(pocoProperty));
 }
Beispiel #5
0
        /// <summary>
        ///     Get information about the column associated with a property of a POCO
        /// </summary>
        /// <param name="pocoProperty">The PropertyInfo of the property being queried</param>
        /// <returns>A reference to a ColumnInfo instance, or null to ignore this property</returns>
        /// <remarks>
        ///     To create a ColumnInfo from a property's attributes, use PropertyInfo.FromProperty
        /// </remarks>
        public ColumnInfo GetColumnInfo(PropertyInfo pocoProperty)
        {
            var ci = new ColumnInfo();

            return(MapColumn(ci, pocoProperty.DeclaringType, pocoProperty) ? ci : null);
        }
 public FluentColumnMap(ColumnInfo columnInfo, Func<object, object> fromDbConverter, Func<object, object> toDbConverter)
 {
     ColumnInfo = columnInfo;
     FromDbConverter = fromDbConverter;
     ToDbConverter = toDbConverter;
 }
 public FluentColumnMap(ColumnInfo columnInfo, Func<object, object> fromDbConverter) : this(columnInfo, fromDbConverter, null) { }
 public FluentColumnMap(ColumnInfo columnInfo) : this(columnInfo, null) { }