private EntityTypeMapping FindConditionTypeMapping( EntityType entityType, bool requiresSplit, EntityTypeMapping propertiesTypeMapping) { var conditionTypeMapping = propertiesTypeMapping; if (requiresSplit) { if (!entityType.Abstract) { conditionTypeMapping = propertiesTypeMapping.Clone(); conditionTypeMapping.RemoveIsOfType(conditionTypeMapping.EntityType); var parentEntitySetMapping = _databaseMapping.GetEntitySetMappings().Single( esm => esm.EntityTypeMappings.Contains(propertiesTypeMapping)); parentEntitySetMapping.AddTypeMapping(conditionTypeMapping); } propertiesTypeMapping.MappingFragments.Each(tmf => tmf.ClearConditions()); } return conditionTypeMapping; }