/// <summary>
 /// Creates a new instance of this class
 /// </summary>
 /// <param name="propertyInfo">Property information</param>
 /// <param name="name">Property name</param>
 /// <param name="columnName">Column name</param>
 /// <param name="clrType">Underlying CLR type</param>
 /// <param name="pkOrder">Order in the primary key</param>
 /// <param name="isAutoGenerated">Is automatically generated?</param>
 /// <param name="isCalculated">Is Calculated?</param>
 /// <param name="isVersionColumn">Is a version column?</param>
 /// <param name="sourceConverters">Optional list of source converters</param>
 /// <param name="targetConverter">Optional target converter</param>
 public DataColumnDescriptor(PropertyInfo propertyInfo, string name, string columnName, Type clrType, 
     int? pkOrder, bool isAutoGenerated, bool isCalculated, bool isVersionColumn, 
     IList<ISourceConverter> sourceConverters = null,
     ITargetConverter targetConverter = null)
 {
     PropertyInfo = propertyInfo;
     Name = name;
     ColumnName = columnName;
     ClrType = clrType;
     PkOrder = pkOrder;
     IsAutoGenerated = isAutoGenerated;
     IsCalculated = isCalculated;
     IsVersionColumn = isVersionColumn;
     if (sourceConverters != null)
     {
         SourceConverters = new ReadOnlyCollection<ISourceConverter>(sourceConverters);
     }
     TargetConverter = targetConverter;
 }
 /// <summary>
 /// Creates a new instance of this class
 /// </summary>
 /// <param name="propertyInfo">Property information</param>
 /// <param name="name">Property name</param>
 /// <param name="columnName">Column name</param>
 /// <param name="clrType">Underlying CLR type</param>
 /// <param name="pkOrder">Order in the primary key</param>
 /// <param name="isAutoGenerated">Is automatically generated?</param>
 /// <param name="isCalculated">Is Calculated?</param>
 /// <param name="isVersionColumn">Is a version column?</param>
 /// <param name="maxLength">Maximum column length (optional)</param>
 /// <param name="isBlob">Is a blob column?</param>
 /// <param name="sourceConverters">Optional list of source converters</param>
 /// <param name="targetConverter">Optional target converter</param>
 public DataColumnDescriptor(PropertyInfo propertyInfo, string name, string columnName, Type clrType,
                             int?pkOrder, bool isAutoGenerated, bool isCalculated, bool isVersionColumn,
                             int?maxLength, bool isBlob,
                             IList <ISourceConverter> sourceConverters = null,
                             ITargetConverter targetConverter          = null)
 {
     PropertyInfo    = propertyInfo;
     Name            = name;
     ColumnName      = columnName;
     ClrType         = clrType;
     PkOrder         = pkOrder;
     IsAutoGenerated = isAutoGenerated;
     IsCalculated    = isCalculated;
     IsVersionColumn = isVersionColumn;
     MaxLength       = maxLength;
     IsBlob          = isBlob;
     if (sourceConverters != null)
     {
         SourceConverters = new ReadOnlyCollection <ISourceConverter>(sourceConverters);
     }
     TargetConverter = targetConverter;
 }