示例#1
0
 private static bool RemapsInheritedProperties(
     DbDatabaseMapping databaseMapping,
     EntityTypeMapping entityTypeMapping)
 {
     foreach (EdmProperty edmProperty in entityTypeMapping.EntityType.Properties.Except <EdmProperty>((IEnumerable <EdmProperty>)entityTypeMapping.EntityType.DeclaredProperties).Except <EdmProperty>((IEnumerable <EdmProperty>)entityTypeMapping.EntityType.GetKeyProperties()))
     {
         EdmProperty     property = edmProperty;
         MappingFragment fragment = MappingInheritedPropertiesSupportConvention.GetFragmentForPropertyMapping(entityTypeMapping, property);
         if (fragment != null)
         {
             for (EntityType baseType = (EntityType)entityTypeMapping.EntityType.BaseType; baseType != null; baseType = (EntityType)baseType.BaseType)
             {
                 if (databaseMapping.GetEntityTypeMappings(baseType).Select <EntityTypeMapping, MappingFragment>((Func <EntityTypeMapping, MappingFragment>)(baseTypeMapping => MappingInheritedPropertiesSupportConvention.GetFragmentForPropertyMapping(baseTypeMapping, property))).Any <MappingFragment>((Func <MappingFragment, bool>)(baseFragment =>
                 {
                     if (baseFragment != null)
                     {
                         return(baseFragment.Table != fragment.Table);
                     }
                     return(false);
                 })))
                 {
                     return(true);
                 }
             }
         }
     }
     return(false);
 }
示例#2
0
 void IDbMappingConvention.Apply(DbDatabaseMapping databaseMapping)
 {
     Check.NotNull <DbDatabaseMapping>(databaseMapping, nameof(databaseMapping));
     databaseMapping.EntityContainerMappings.SelectMany <EntityContainerMapping, EntitySetMapping>((Func <EntityContainerMapping, IEnumerable <EntitySetMapping> >)(ecm => ecm.EntitySetMappings)).Each <EntitySetMapping>((Action <EntitySetMapping>)(esm =>
     {
         foreach (EntityTypeMapping entityTypeMapping in esm.EntityTypeMappings)
         {
             if (MappingInheritedPropertiesSupportConvention.RemapsInheritedProperties(databaseMapping, entityTypeMapping) && MappingInheritedPropertiesSupportConvention.HasBaseWithIsTypeOf(esm, entityTypeMapping.EntityType))
             {
                 throw Error.UnsupportedHybridInheritanceMapping((object)entityTypeMapping.EntityType.Name);
             }
         }
     }));
 }