internal CacheField ToCacheField()
        {
            var cf = new CacheField();

            cf.Name = Name;
            if ((Caption != null) && (Caption.Length > 0))
            {
                cf.Caption = Caption;
            }
            if ((PropertyName != null) & (PropertyName.Length > 0))
            {
                cf.PropertyName = PropertyName;
            }
            if (ServerField)
            {
                cf.ServerField = ServerField;
            }
            if (UniqueList != true)
            {
                cf.UniqueList = UniqueList;
            }
            if (NumberFormatId != null)
            {
                cf.NumberFormatId = NumberFormatId.Value;
            }
            if ((Formula != null) && (Formula.Length > 0))
            {
                cf.Formula = Formula;
            }
            if (SqlType != 0)
            {
                cf.SqlType = SqlType;
            }
            if (Hierarchy != 0)
            {
                cf.Hierarchy = Hierarchy;
            }
            if (Level != 0)
            {
                cf.Level = Level;
            }
            if (DatabaseField != true)
            {
                cf.DatabaseField = DatabaseField;
            }
            if (MappingCount != null)
            {
                cf.MappingCount = MappingCount.Value;
            }
            if (MemberPropertyField)
            {
                cf.MemberPropertyField = MemberPropertyField;
            }

            if (HasSharedItems)
            {
                cf.SharedItems = SharedItems.ToSharedItems();
            }

            if (HasFieldGroup)
            {
                cf.FieldGroup = FieldGroup.ToFieldGroup();
            }

            foreach (var i in MemberPropertiesMaps)
            {
                if (i != 0)
                {
                    cf.Append(new MemberPropertiesMap {
                        Val = i
                    });
                }
                else
                {
                    cf.Append(new MemberPropertiesMap());
                }
            }

            return(cf);
        }