private static IEnumerable <TypeMapping> GetIsTypeOfMappingsForEntitySetAndType( StorageMappingItemCollection mappingCollection, EntityContainer container, EntitySetBase entitySet, EntityTypeBase entityType, EntityTypeBase childEntityType) { foreach (TypeMapping typeMapping in MappingMetadataHelper.GetMappingsForEntitySetAndType(mappingCollection, container, entitySet, entityType)) { if (typeMapping.IsOfTypes.Any <EntityTypeBase>((Func <EntityTypeBase, bool>)(parentType => parentType.IsAssignableFrom((EdmType)childEntityType))) || typeMapping.Types.Contains(childEntityType)) { yield return(typeMapping); } } }
internal static IEnumerable <TypeMapping> GetMappingsForEntitySetAndSuperTypes( StorageMappingItemCollection mappingCollection, EntityContainer container, EntitySetBase entitySet, EntityTypeBase childEntityType) { return((IEnumerable <TypeMapping>)MetadataHelper.GetTypeAndParentTypesOf((EdmType)childEntityType, true).SelectMany <EdmType, TypeMapping>((Func <EdmType, IEnumerable <TypeMapping> >)(edmType => { EntityTypeBase entityType = edmType as EntityTypeBase; if (!edmType.EdmEquals((MetadataItem)childEntityType)) { return MappingMetadataHelper.GetIsTypeOfMappingsForEntitySetAndType(mappingCollection, container, entitySet, entityType, childEntityType); } return MappingMetadataHelper.GetMappingsForEntitySetAndType(mappingCollection, container, entitySet, entityType); })).ToList <TypeMapping>()); }