public static void RemoveDefaultDiscriminator( this StorageMappingFragment entityTypeMappingFragment, StorageEntitySetMapping entitySetMapping) { DebugCheck.NotNull(entityTypeMappingFragment); var discriminatorColumn = entityTypeMappingFragment.RemoveDefaultDiscriminatorCondition(); if (discriminatorColumn != null) { var table = entityTypeMappingFragment.Table; table.Properties .Where(c => c.Name.Equals(discriminatorColumn.Name, StringComparison.Ordinal)) .ToList() .Each(table.RemoveMember); } if (entitySetMapping != null && entityTypeMappingFragment.IsConditionOnlyFragment() && !entityTypeMappingFragment.ColumnConditions.Any()) { var entityTypeMapping = entitySetMapping.EntityTypeMappings.Single( etm => etm.MappingFragments.Contains(entityTypeMappingFragment)); entityTypeMapping.RemoveFragment(entityTypeMappingFragment); if (entityTypeMapping.MappingFragments.Count == 0) { entitySetMapping.RemoveTypeMapping(entityTypeMapping); } } }
private void ConfigureDefaultDiscriminator( EntityType entityType, StorageMappingFragment fragment) { if (ValueConditions.Any() || NullabilityConditions.Any()) { var discriminator = fragment.RemoveDefaultDiscriminatorCondition(); if (discriminator != null && entityType.BaseType != null) { discriminator.Nullable = true; } } }