File tree Expand file tree Collapse file tree
Orm/Xtensive.Orm/Tuples/Packed Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -100,6 +100,8 @@ private static class ValueFieldAccessorResolver
100100 private static readonly ValueFieldAccessor DecimalAccessor = new DecimalFieldAccessor ( ) ;
101101 private static readonly ValueFieldAccessor GuidAccessor = new GuidFieldAccessor ( ) ;
102102
103+ private static readonly int NullableTypeMetadataToken = typeof ( Nullable < > ) . MetadataToken ;
104+
103105 public static ValueFieldAccessor GetValue ( Type probeType )
104106 {
105107 ValueFieldAccessor ResolveByType ( Type type ) =>
@@ -136,7 +138,9 @@ ValueFieldAccessor ResolveByNullableType(Type type) =>
136138 ReferenceEquals ( type , NullableDecimalType ) ? DecimalAccessor :
137139 ReferenceEquals ( type , NullableGuidType ) ? GuidAccessor : null ;
138140
139- return probeType . IsGenericType ? ResolveByNullableType ( probeType ) : ResolveByType ( probeType ) ;
141+ return ( probeType . MetadataToken ^ NullableTypeMetadataToken ) == 0
142+ ? ResolveByNullableType ( probeType )
143+ : ResolveByType ( probeType ) ;
140144 }
141145 }
142146
You can’t perform that action at this time.
0 commit comments