@@ -530,108 +530,108 @@ bool IModelInspector.IsTablePerConcreteClass(System.Type type)
530
530
531
531
bool IModelInspector . IsOneToOne ( MemberInfo member )
532
532
{
533
- bool declaredResult = declaredModel . IsOneToOne ( member ) ;
533
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsOneToOne ( m ) ) ;
534
534
return isOneToOne ( member , declaredResult ) ;
535
535
}
536
536
537
537
bool IModelInspector . IsManyToOne ( MemberInfo member )
538
538
{
539
- bool declaredResult = declaredModel . IsManyToOne ( member ) ;
539
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsManyToOne ( m ) ) ;
540
540
return isManyToOne ( member , declaredResult ) ;
541
541
}
542
542
543
543
bool IModelInspector . IsManyToMany ( MemberInfo member )
544
544
{
545
- bool declaredResult = declaredModel . IsManyToMany ( member ) ;
545
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsManyToMany ( m ) ) ;
546
546
return isManyToMany ( member , declaredResult ) ;
547
547
}
548
548
549
549
bool IModelInspector . IsOneToMany ( MemberInfo member )
550
550
{
551
- bool declaredResult = declaredModel . IsOneToMany ( member ) ;
551
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsOneToMany ( m ) ) ;
552
552
return isOneToMany ( member , declaredResult ) ;
553
553
}
554
554
555
555
bool IModelInspector . IsAny ( MemberInfo member )
556
556
{
557
- bool declaredResult = declaredModel . IsAny ( member ) ;
557
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsAny ( m ) ) ;
558
558
return isAny ( member , declaredResult ) ;
559
559
}
560
560
561
561
bool IModelInspector . IsPersistentId ( MemberInfo member )
562
562
{
563
- bool declaredResult = declaredModel . IsPersistentId ( member ) ;
563
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsPersistentId ( m ) ) ;
564
564
return isPersistentId ( member , declaredResult ) ;
565
565
}
566
566
567
567
bool IModelInspector . IsMemberOfComposedId ( MemberInfo member )
568
568
{
569
- return declaredModel . IsPersistentId ( member ) ;
569
+ return declaredModel . IsMemberOfComposedId ( member ) ;
570
570
}
571
571
572
572
bool IModelInspector . IsVersion ( MemberInfo member )
573
573
{
574
- bool declaredResult = declaredModel . IsVersion ( member ) ;
574
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsVersion ( m ) ) ;
575
575
return isVersion ( member , declaredResult ) ;
576
576
}
577
577
578
578
bool IModelInspector . IsMemberOfNaturalId ( MemberInfo member )
579
579
{
580
- bool declaredResult = declaredModel . IsMemberOfNaturalId ( member ) ;
580
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsMemberOfNaturalId ( m ) ) ;
581
581
return isMemberOfNaturalId ( member , declaredResult ) ;
582
582
}
583
583
584
584
bool IModelInspector . IsPersistentProperty ( MemberInfo member )
585
585
{
586
- bool declaredResult = declaredModel . IsPersistentProperty ( member ) ;
586
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsPersistentProperty ( m ) ) ;
587
587
return isPersistentProperty ( member , declaredResult ) ;
588
588
}
589
589
590
590
bool IModelInspector . IsSet ( MemberInfo role )
591
591
{
592
- bool declaredResult = declaredModel . IsSet ( role ) ;
592
+ bool declaredResult = DeclaredPolymorphicMatch ( role , m => declaredModel . IsSet ( m ) ) ;
593
593
return isSet ( role , declaredResult ) ;
594
594
}
595
595
596
596
bool IModelInspector . IsBag ( MemberInfo role )
597
597
{
598
- bool declaredResult = declaredModel . IsBag ( role ) ;
598
+ bool declaredResult = DeclaredPolymorphicMatch ( role , m => declaredModel . IsBag ( m ) ) ;
599
599
return isBag ( role , declaredResult ) ;
600
600
}
601
601
602
602
bool IModelInspector . IsIdBag ( MemberInfo role )
603
603
{
604
- bool declaredResult = declaredModel . IsIdBag ( role ) ;
604
+ bool declaredResult = DeclaredPolymorphicMatch ( role , m => declaredModel . IsIdBag ( m ) ) ;
605
605
return isIdBag ( role , declaredResult ) ;
606
606
}
607
607
608
608
bool IModelInspector . IsList ( MemberInfo role )
609
609
{
610
- bool declaredResult = declaredModel . IsList ( role ) ;
610
+ bool declaredResult = DeclaredPolymorphicMatch ( role , m => declaredModel . IsList ( m ) ) ;
611
611
return isList ( role , declaredResult ) ;
612
612
}
613
613
614
614
bool IModelInspector . IsArray ( MemberInfo role )
615
615
{
616
- bool declaredResult = declaredModel . IsArray ( role ) ;
616
+ bool declaredResult = DeclaredPolymorphicMatch ( role , m => declaredModel . IsArray ( m ) ) ;
617
617
return isArray ( role , declaredResult ) ;
618
618
}
619
619
620
620
bool IModelInspector . IsDictionary ( MemberInfo role )
621
621
{
622
- bool declaredResult = declaredModel . IsDictionary ( role ) ;
622
+ bool declaredResult = DeclaredPolymorphicMatch ( role , m => declaredModel . IsDictionary ( m ) ) ;
623
623
return isDictionary ( role , declaredResult ) ;
624
624
}
625
625
626
626
bool IModelInspector . IsProperty ( MemberInfo member )
627
627
{
628
- bool declaredResult = declaredModel . IsProperty ( member ) ;
628
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsProperty ( m ) ) ;
629
629
return isProperty ( member , declaredResult ) ;
630
630
}
631
631
632
632
bool IModelInspector . IsDynamicComponent ( MemberInfo member )
633
633
{
634
- bool declaredResult = declaredModel . IsDynamicComponent ( member ) ;
634
+ bool declaredResult = DeclaredPolymorphicMatch ( member , m => declaredModel . IsDynamicComponent ( m ) ) ;
635
635
return isDynamicComponent ( member , declaredResult ) ;
636
636
}
637
637
@@ -652,6 +652,13 @@ IEnumerable<string> IModelInspector.GetPropertiesSplits(System.Type type)
652
652
653
653
#endregion
654
654
655
+ protected virtual bool DeclaredPolymorphicMatch ( MemberInfo member , Func < MemberInfo , bool > declaredMatch )
656
+ {
657
+ return declaredMatch ( member )
658
+ || member . GetMemberFromDeclaringClasses ( ) . Any ( declaredMatch )
659
+ || member . GetPropertyFromInterfaces ( ) . Any ( declaredMatch ) ;
660
+ }
661
+
655
662
public void IsRootEntity ( Func < System . Type , bool , bool > match )
656
663
{
657
664
if ( match == null )
0 commit comments