private static void PropertyConvension(IModelInspector modelInspector,
                                               PropertyPath propertyPath,
                                               IPropertyMapper propertyMapper)
        {
            if (modelInspector.IsSet(propertyPath.LocalMember))
            {
                propertyMapper.Access(Accessor.Field);
            }

            var type = propertyPath.LocalMember.GetPropertyOrFieldType();

            if (!type.IsNullable())
            {
                propertyMapper.NotNullable(true);
            }

            var propertyName = propertyPath.LocalMember.Name;

            if (modelInspector.IsComponent(propertyPath.LocalMember.ReflectedType))
            {
                var entityName = propertyPath.LocalMember.ReflectedType.Name;

                propertyMapper.Column(IdentityBuilder.BuildColumnName(entityName,
                                                                      propertyName));
            }
            else
            {
                propertyMapper.Column(IdentityBuilder.BuildColumnName(propertyName));
            }
        }
Beispiel #2
0
 private void Name(IPropertyMapper propertyMapper)
 {
     propertyMapper.Column("Name");
     propertyMapper.Type(NHibernateUtil.String);
     propertyMapper.Length(100);
     propertyMapper.NotNullable(false);
 }
Beispiel #3
0
        void ApplyPropertyConvention(IModelInspector mi, PropertyPath type, IPropertyMapper map)
        {
            if (type.PreviousPath != null)
            {
                if (mi.IsComponent(((PropertyInfo)type.PreviousPath.LocalMember).PropertyType))
                {
                    map.Column(type.PreviousPath.LocalMember.Name + type.LocalMember.Name);
                }
            }

            if (type.LocalMember.GetCustomAttributes(typeof(UniqueAttribute), false).Any())
            {
                map.Unique(true);
            }

            var propertyInfo = type.LocalMember as PropertyInfo;

            if (propertyInfo != null)
            {
                if (propertyInfo.PropertyType == typeof(byte[]))
                {
                    map.Length(Int32.MaxValue);
                }

                return;
            }

            var fieldInfo = type.LocalMember as FieldInfo;

            if (fieldInfo != null && fieldInfo.FieldType == typeof(byte[]))
            {
                map.Length(Int32.MaxValue);
            }
        }
        private void OnBeforeMapProperty(IModelInspector mi, PropertyPath member, IPropertyMapper map)
        {
            var type = member.LocalMember.GetPropertyOrFieldType();

            if (type == typeof(string))
            {
                if (member.LocalMember.Name == "FileName")
                {
                    map.Length(255);
                }
                else
                {
                    map.Type <DefaultStringType>();
                    map.Length(50);
                }
            }
            else if (type == typeof(byte[]))
            {
                map.Length(Int32.MaxValue / 2);
                map.Column(x => x.SqlType("varbinary(max)"));
            }

            if (member.LocalMember.Name == "DateCreated")
            {
                map.Update(false);
            }
        }
 public static void DefaultPropertyMapper(IModelInspector modelInspector, PropertyPath path, IPropertyMapper mapper)
 {
     if (path.LocalMember.GetPropertyOrFieldType() == typeof(bool))
     {
         mapper.Column(path.ToColumnName() + "Flag");
     }
 }
Beispiel #6
0
        private void ComponentNamingConvention(IModelInspector modelInspector, PropertyPath member, IPropertyMapper map)
        {
            var property = member.LocalMember as PropertyInfo;

            if (modelInspector.IsComponent(property.DeclaringType))
            {
                map.Column(ComponentColumnNaming(member.PreviousPath.LocalMember, member.LocalMember));
            }
        }
Beispiel #7
0
        public static void ComponentNamingConvention(IModelInspector modelInspector, PropertyPath member, IPropertyMapper map)
        {
            var property = member.LocalMember as PropertyInfo;

            if (modelInspector.IsComponent(property.DeclaringType))
            {
                map.Column(member.PreviousPath.LocalMember.Name + member.LocalMember.Name);
            }
        }
        protected void BeforeMapProperty(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
        {
            propertyCustomizer.Column(this.GetNormalizedDbName(member.LocalMember.Name));

            if (member.LocalMember.GetPropertyOrFieldType().IsEnum == true)
            {
                //propertyCustomizer.Type(Activator.CreateInstance(typeof(EnumStringType<>).MakeGenericType(member.LocalMember.GetPropertyOrFieldType())) as IType);
                propertyCustomizer.Type(Activator.CreateInstance(typeof(EnumType <>).MakeGenericType(member.LocalMember.GetPropertyOrFieldType())) as IType);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Maps a property according the naming conventions configuration
        /// </summary>
        /// <param name="modelInspector">The model inspector</param>
        /// <param name="property">The property</param>
        /// <param name="mapper">The property mapper</param>
        private void MapProperty(IModelInspector modelInspector, PropertyPath property, IPropertyMapper mapper)
        {
            var attrib = ReflectionHelper.GetSingleAttributeOrDefault <XTFieldMappingAttribute>(property.LocalMember);

            if (attrib != null)
            {
                if (attrib.Ignore)
                {
                    return;
                }
            }
            if (MatchOneToOneComponent(property, modelInspector))
            {
                mapper.Column(this.namingEngine.ToComponentColumnName(property.LocalMember, property.PreviousPath.LocalMember));
            }
            else
            {
                mapper.Column(this.namingEngine.ToColumnName(property.LocalMember));
            }
        }
Beispiel #10
0
        private void ApplyPropertyConvention(IModelInspector mi, PropertyPath type, IPropertyMapper map)
        {
            if (type.PreviousPath != null)
            {
                if (mi.IsComponent(((PropertyInfo)type.PreviousPath.LocalMember).PropertyType))
                {
                    map.Column(type.PreviousPath.LocalMember.Name + type.LocalMember.Name);
                }
            }

            if (type.LocalMember.GetCustomAttributes(typeof(UniqueAttribute), false).Any())
            {
                map.Unique(true);
            }
        }
        void ApplyPropertyConvention(IModelInspector mi, PropertyPath type, IPropertyMapper map)
        {
            if (type.PreviousPath != null)
            {
                if (mi.IsComponent(((PropertyInfo)type.PreviousPath.LocalMember).PropertyType))
                {
                    map.Column(type.PreviousPath.LocalMember.Name + type.LocalMember.Name);
                }
            }

            if (type.LocalMember.DeclaringType != null)
            {
                var sagaMetadata = sagaMetaModel.FirstOrDefault(sm => sm.SagaEntityType == type.LocalMember.DeclaringType);

                if (sagaMetadata != null)
                {
                    SagaMetadata.CorrelationPropertyMetadata correlationProperty;
                    if (sagaMetadata.TryGetCorrelationProperty(out correlationProperty) && correlationProperty.Name == type.LocalMember.Name)
                    {
                        map.Unique(true);
                    }
                }
            }

            var propertyInfo = type.LocalMember as PropertyInfo;

            if (propertyInfo != null)
            {
                if (propertyInfo.PropertyType == typeof(byte[]))
                {
                    map.Length(int.MaxValue);
                }

                return;
            }

            var fieldInfo = type.LocalMember as FieldInfo;

            if (fieldInfo != null && fieldInfo.FieldType == typeof(byte[]))
            {
                map.Length(int.MaxValue);
            }
        }
        protected override void OnBeforeMapProperty(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
        {
            Type reflectedType = member.LocalMember.ReflectedType;

            if (reflectedType == null)
            {
                return;
            }

            propertyCustomizer.Column(GetColumnName(modelInspector, member));

            bool required =
                member.LocalMember
                .GetCustomAttributes()
                .OfType <RequiredAttribute>()
                .Any();

            // Getting tableType of reflected object
            Type memberType = member.MemberType();

            bool notNullable = required || (memberType != null && memberType.IsPrimitive) || memberType == typeof(DateTime);

            propertyCustomizer.NotNullable(notNullable);

            StringLengthAttribute stringLengthAttribute =
                member.LocalMember
                .GetCustomAttributes()
                .OfType <StringLengthAttribute>()
                .FirstOrDefault();

            if (stringLengthAttribute != null)
            {
                if (stringLengthAttribute.MaximumLength > 0)
                {
                    propertyCustomizer.Length(stringLengthAttribute.MaximumLength);
                }
                else
                {
                    propertyCustomizer.Type(NHibernateUtil.StringClob);
                }
            }
        }
 /// <summary>
 /// Maps a property according the naming conventions configuration
 /// </summary>
 /// <param name="modelInspector">The model inspector</param>
 /// <param name="property">The property</param>
 /// <param name="mapper">The property mapper</param>
 private void MapProperty(IModelInspector modelInspector, PropertyPath property, IPropertyMapper mapper)
 {
     if (MatchOneToOneComponent(property, modelInspector))
     {
         mapper.Column(this.namingEngine.ToComponentColumnName(property.LocalMember, property.PreviousPath.LocalMember));
     }
     else
     {
         mapper.Column(this.namingEngine.ToColumnName(property.LocalMember));
     }
 }
Beispiel #14
0
 private void TryMapComponent(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
 {
     if (modelInspector.IsComponent(member.LocalMember.DeclaringType)
         && !modelInspector.IsPersistentId(member.PreviousPath.LocalMember))
     {
         propertyCustomizer.Column(member.PreviousPath.LocalMember.Name + "_" + member.LocalMember.Name);
     }
 }
Beispiel #15
0
 private void TeamId(IPropertyMapper propertyMapper)
 {
     propertyMapper.Column("Team_Id");
     propertyMapper.Type(NHibernateUtil.Int32);
     propertyMapper.NotNullable(false);
 }
Beispiel #16
0
        private void EscapeColumnName(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
        {
            var columnName = member.ToColumnName();

            propertyCustomizer.Column("`" + columnName + "`");
        }
Beispiel #17
0
        private static void PrefixColumnWithComponentPropertyName(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
        {
            if (member.PreviousPath == null) return;

            propertyCustomizer.Column(member.ToColumnName());
        }
        protected override void OnBeforeMapProperty(IModelInspector modelInspector, PropertyPath member, IPropertyMapper propertyCustomizer)
        {
            Type reflectedType = member.LocalMember.ReflectedType;
            if (reflectedType == null)
            {
                return;
            }

            propertyCustomizer.Column(GetColumnName(modelInspector, member));

            bool required =
                member.LocalMember
                      .GetCustomAttributes()
                      .OfType<RequiredAttribute>()
                      .Any();

            // Getting tableType of reflected object
            Type memberType = member.MemberType();

            bool notNullable = required || (memberType != null && memberType.IsPrimitive) || memberType == typeof(DateTime);
            propertyCustomizer.NotNullable(notNullable);

            StringLengthAttribute stringLengthAttribute =
                member.LocalMember
                      .GetCustomAttributes()
                      .OfType<StringLengthAttribute>()
                      .FirstOrDefault();
            if (stringLengthAttribute != null)
            {
                if (stringLengthAttribute.MaximumLength > 0)
                {
                    propertyCustomizer.Length(stringLengthAttribute.MaximumLength);
                }
                else
                {
                    propertyCustomizer.Type(NHibernateUtil.StringClob);
                }
            }
        }