public static Field CreateFromDataReader(IRecordsReader reader)
        {
            Field f = Create();

            f.Id        = reader.GetGuid("id");
            f.Values    = new List <object>();
            f.PreValues = new List <PreValue>();

            f.Caption = reader.GetString("caption");
            f.ToolTip = reader.GetString("tooltip");

            f.RequiredErrorMessage = reader.GetString("RequiredErrorMessage");
            f.InvalidErrorMessage  = reader.GetString("InvalidErrorMessage");

            f.DataSourceFieldKey = reader.GetObject("DataSourceField");

            f.FieldSet  = reader.GetGuid("fieldset");
            f.Form      = reader.GetGuid("form");
            f.Mandatory = reader.GetBoolean("mandatory");

            f.RegEx = reader.GetString("regex");

            f.SortOrder = reader.GetInt("sortOrder");

            f.FieldsetIndex = reader.GetInt("FieldsetIndex");
            f.PageIndex     = reader.GetInt("PageIndex");

            f.FieldTypeId = reader.GetGuid("fieldType");
            Type _t = Umbraco.Forms.Core.Providers.FieldTypeProviderCollection.Instance.GetProvider(f.FieldTypeId).GetType();

            f.FieldType = (Umbraco.Forms.Core.FieldType)Activator.CreateInstance(_t);

            f.Settings = new List <Umbraco.Forms.Migration.Data.Storage.Setting <string, string> >();

            return(f);
        }