@@ -75,7 +75,7 @@ internal static ModelDefinition GetModelDefinition(this Type modelType)
7575 var objProperties = modelType . GetProperties (
7676 BindingFlags . Public | BindingFlags . Instance ) . ToList ( ) ;
7777
78- var hasPkAttr = objProperties . Any ( p => p . HasAttribute < PrimaryKeyAttribute > ( ) ) ;
78+ var hasPkAttr = objProperties . Any ( p => p . HasAttributeCached < PrimaryKeyAttribute > ( ) ) ;
7979
8080 var hasIdField = CheckForIdField ( objProperties ) ;
8181
@@ -107,15 +107,17 @@ internal static ModelDefinition GetModelDefinition(this Type modelType)
107107 : propertyInfo . PropertyType ;
108108
109109 Type treatAsType = null ;
110- if ( propertyType . IsEnumFlags ( ) || propertyType . HasAttribute < EnumAsIntAttribute > ( ) )
110+ if ( propertyType . IsEnumFlags ( ) || propertyType . HasAttributeCached < EnumAsIntAttribute > ( ) )
111111 treatAsType = Enum . GetUnderlyingType ( propertyType ) ;
112+ else if ( propertyType . HasAttributeCached < EnumAsCharAttribute > ( ) )
113+ treatAsType = typeof ( char ) ;
112114
113115 var isReference = referenceAttr != null && propertyType . IsClass ;
114- var isIgnored = propertyInfo . HasAttribute < IgnoreAttribute > ( ) || isReference ;
116+ var isIgnored = propertyInfo . HasAttributeCached < IgnoreAttribute > ( ) || isReference ;
115117
116118 var isFirst = ! isIgnored && i ++ == 0 ;
117119
118- var isAutoId = propertyInfo . HasAttribute < AutoIdAttribute > ( ) ;
120+ var isAutoId = propertyInfo . HasAttributeCached < AutoIdAttribute > ( ) ;
119121
120122 var isPrimaryKey = ( ! hasPkAttr && ( propertyInfo . Name == OrmLiteConfig . IdField || ( ! hasIdField && isFirst ) ) )
121123 || propertyInfo . HasAttributeNamed ( typeof ( PrimaryKeyAttribute ) . Name )
@@ -149,21 +151,21 @@ internal static ModelDefinition GetModelDefinition(this Type modelType)
149151 IsPrimaryKey = isPrimaryKey ,
150152 AutoIncrement =
151153 isPrimaryKey &&
152- propertyInfo . HasAttribute < AutoIncrementAttribute > ( ) ,
154+ propertyInfo . HasAttributeCached < AutoIncrementAttribute > ( ) ,
153155 AutoId = isAutoId ,
154156 IsIndexed = ! isPrimaryKey && isIndex ,
155157 IsUniqueIndex = isUnique ,
156158 IsClustered = indexAttr ? . Clustered == true ,
157159 IsNonClustered = indexAttr ? . NonClustered == true ,
158160 IndexName = indexAttr ? . Name ,
159161 IsRowVersion = isRowVersion ,
160- IgnoreOnInsert = propertyInfo . HasAttribute < IgnoreOnInsertAttribute > ( ) ,
161- IgnoreOnUpdate = propertyInfo . HasAttribute < IgnoreOnUpdateAttribute > ( ) ,
162- ReturnOnInsert = propertyInfo . HasAttribute < ReturnOnInsertAttribute > ( ) ,
162+ IgnoreOnInsert = propertyInfo . HasAttributeCached < IgnoreOnInsertAttribute > ( ) ,
163+ IgnoreOnUpdate = propertyInfo . HasAttributeCached < IgnoreOnUpdateAttribute > ( ) ,
164+ ReturnOnInsert = propertyInfo . HasAttributeCached < ReturnOnInsertAttribute > ( ) ,
163165 FieldLength = stringLengthAttr ? . MaximumLength ,
164166 DefaultValue = defaultValueAttr ? . DefaultValue ,
165167 CheckConstraint = chkConstraintAttr ? . Constraint ,
166- IsUniqueConstraint = propertyInfo . HasAttribute < UniqueAttribute > ( ) ,
168+ IsUniqueConstraint = propertyInfo . HasAttributeCached < UniqueAttribute > ( ) ,
167169 ForeignKey = fkAttr == null
168170 ? referencesAttr != null ? new ForeignKeyConstraint ( referencesAttr . Type ) : null
169171 : new ForeignKeyConstraint ( fkAttr . Type , fkAttr . OnDelete , fkAttr . OnUpdate , fkAttr . ForeignKeyName ) ,
0 commit comments