示例#1
0
        private void AddExtraInfoToProperty(property xmlProp, Property originalProp)
        {
            xmlProp.insert = originalProp.GetPropertyInsert();
            xmlProp.update = originalProp.GetPropertyUpdate();

            string formula = originalProp.GetPropertyFormula();

            if (!string.IsNullOrWhiteSpace(formula))
                xmlProp.formula = formula;

            xmlProp.optimisticlock = originalProp.GetPropertyOptimisticLock();
            xmlProp.generated = (propertyGeneration)Enum.Parse(typeof(propertyGeneration), originalProp.GetPropertyGenerated().ToString());

            var access = originalProp.GetPropertyAccess();

            if (access != Interfaces.NHibernateEnums.PropertyAccessTypes.inherit_default)
                xmlProp.access = access.ToString().Replace("_", "-");

            if (!originalProp.GetPropertyInsert())
            {
                xmlProp.insertSpecified = true;
                xmlProp.insert = false;
            }
            if (!originalProp.GetPropertyUpdate())
            {
                xmlProp.updateSpecified = true;
                xmlProp.update = false;
            }
        }
        private static ArchAngel.Interfaces.Scripting.NHibernate.Model.IProperty ConvertProperty(Dictionary<ArchAngel.Providers.EntityModel.Model.DatabaseLayer.IColumn, ArchAngel.Interfaces.Scripting.NHibernate.Model.IColumn> columnLookups, Property property, PropertyAccessTypes entityDefaultAccess)
        {
            ArchAngel.Interfaces.Scripting.NHibernate.Model.IProperty newProperty = new ArchAngel.Interfaces.Scripting.NHibernate.Model.IProperty()
            {
                Name = property.Name,
                Type = property.Type.Replace(SharedData.CurrentProject.GetUserOption("ProjectNamespace").ToString() + ".Model.", ""),
                IsInherited = property.IsInherited,
                IsSetterPrivate = (bool)SharedData.CurrentProject.GetUserOption("UsePrivateSettersOnProperties") || (bool)property.GetUserOptionValue("Property_UsePrivateSetter"),
                ScriptObject = property,
                IsKeyProperty = property.IsKeyProperty,
                PreviousNames = property.OldNames.ToList(),
                //Access = (ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyAccessTypes)Enum.Parse(typeof(ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyAccessTypes), property.GetPropertyAccess().ToString(), true),
                Formula = property.GetPropertyFormula(),
                Insert = property.GetPropertyInsert(),
                Update = property.GetPropertyUpdate(),
                Generate = (ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyGeneratedTypes)Enum.Parse(typeof(ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyGeneratedTypes), property.GetPropertyGenerated().ToString(), true),
                IsVersionProperty = property.GetPropertyIsVersion(),
                IsNullable = IsTypeNullable(property.Type),
                TypeVB = ConvertTypeToVb(property.Type)
            };
            string accessType = property.GetPropertyAccess().ToString();

            if (accessType == PropertyAccessTypes.inherit_default.ToString())
                newProperty.Access = (ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyAccessTypes)Enum.Parse(typeof(ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyAccessTypes), entityDefaultAccess.ToString(), true);
            else
                newProperty.Access = (ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyAccessTypes)Enum.Parse(typeof(ArchAngel.Interfaces.Scripting.NHibernate.Model.PropertyAccessTypes), accessType, true);

            ArchAngel.Providers.EntityModel.Model.DatabaseLayer.IColumn mappedColumn = property.MappedColumn();

            if (mappedColumn != null)
            {
                newProperty.MappedColumn = columnLookups[mappedColumn];
                newProperty.MappedColumnName = mappedColumn.Name;
            }
            //else
            //{
            //    List<Entity> children = property.Entity.Children.Where(c => EntityImpl.DetermineInheritanceTypeWithParent(c) == EntityImpl.InheritanceType.TablePerClassHierarchy).ToList();

            //    if (children.c)

            //}
            return newProperty;
        }