diff --git a/src/EFCore/Query/NotParameterizedAttribute.cs b/src/EFCore.Abstractions/Query/NotParameterizedAttribute.cs similarity index 100% rename from src/EFCore/Query/NotParameterizedAttribute.cs rename to src/EFCore.Abstractions/Query/NotParameterizedAttribute.cs diff --git a/src/EFCore/Extensions/ConventionForeignKeyExtensions.cs b/src/EFCore/Extensions/ConventionForeignKeyExtensions.cs index 6c92de2c571..10493c7fb4d 100644 --- a/src/EFCore/Extensions/ConventionForeignKeyExtensions.cs +++ b/src/EFCore/Extensions/ConventionForeignKeyExtensions.cs @@ -18,9 +18,9 @@ public static class ConventionForeignKeyExtensions /// The foreign key. /// One of the entity types related by the foreign key. /// The entity type related to the given one. - public static IConventionEntityType ResolveOtherEntityType( + public static IConventionEntityType GetRelatedEntityType( [NotNull] this IConventionForeignKey foreignKey, [NotNull] IConventionEntityType entityType) - => (IConventionEntityType)((IForeignKey)foreignKey).ResolveOtherEntityType(entityType); + => (IConventionEntityType)((IForeignKey)foreignKey).GetRelatedEntityType(entityType); /// /// Returns a navigation associated with this foreign key. diff --git a/src/EFCore/Extensions/ConventionModelExtensions.cs b/src/EFCore/Extensions/ConventionModelExtensions.cs index c5f63820bf0..49a8aeb8101 100644 --- a/src/EFCore/Extensions/ConventionModelExtensions.cs +++ b/src/EFCore/Extensions/ConventionModelExtensions.cs @@ -223,10 +223,10 @@ public static void AddOwned([NotNull] this IConventionModel model, [NotNull] Typ /// Indicates whether the given entity type name is ignored. /// /// The model to check for ignored type. - /// The name of the entity type that could be ignored. + /// The name of the entity type that could be ignored. /// true if the given entity type name is ignored. - public static bool IsIgnored([NotNull] this IConventionModel model, [NotNull] string name) - => model.FindIgnoredConfigurationSource(name) != null; + public static bool IsIgnored([NotNull] this IConventionModel model, [NotNull] string typeName) + => model.FindIgnoredConfigurationSource(typeName) != null; /// /// Indicates whether the given entity type is ignored. diff --git a/src/EFCore/Extensions/ConventionTypeBaseExtensions.cs b/src/EFCore/Extensions/ConventionTypeBaseExtensions.cs index a17ed845510..bfba70d169e 100644 --- a/src/EFCore/Extensions/ConventionTypeBaseExtensions.cs +++ b/src/EFCore/Extensions/ConventionTypeBaseExtensions.cs @@ -18,10 +18,10 @@ public static class ConventionTypeBaseExtensions /// Indicates whether the given member name is ignored. /// /// The type to check the ignored member. - /// The name of the member that might be ignored. + /// The name of the member that might be ignored. /// true if the given member name is ignored. - public static bool IsIgnored([NotNull] this IConventionTypeBase entityType, [NotNull] string name) - => entityType.FindIgnoredConfigurationSource(name) != null; + public static bool IsIgnored([NotNull] this IConventionTypeBase entityType, [NotNull] string memberName) + => entityType.FindIgnoredConfigurationSource(memberName) != null; /// /// diff --git a/src/EFCore/Extensions/ForeignKeyExtensions.cs b/src/EFCore/Extensions/ForeignKeyExtensions.cs index 8004d25ba4a..2dd4db6afd5 100644 --- a/src/EFCore/Extensions/ForeignKeyExtensions.cs +++ b/src/EFCore/Extensions/ForeignKeyExtensions.cs @@ -20,7 +20,7 @@ public static class ForeignKeyExtensions /// The foreign key. /// One of the entity types related by the foreign key. /// The entity type related to the given one. - public static IEntityType ResolveOtherEntityType([NotNull] this IForeignKey foreignKey, [NotNull] IEntityType entityType) + public static IEntityType GetRelatedEntityType([NotNull] this IForeignKey foreignKey, [NotNull] IEntityType entityType) { if (foreignKey.DeclaringEntityType != entityType && foreignKey.PrincipalEntityType != entityType) diff --git a/src/EFCore/Extensions/MutableForeignKeyExtensions.cs b/src/EFCore/Extensions/MutableForeignKeyExtensions.cs index 63ed6f2445b..f5a8dd1fb23 100644 --- a/src/EFCore/Extensions/MutableForeignKeyExtensions.cs +++ b/src/EFCore/Extensions/MutableForeignKeyExtensions.cs @@ -18,9 +18,9 @@ public static class MutableForeignKeyExtensions /// The foreign key. /// One of the entity types related by the foreign key. /// The entity type related to the given one. - public static IMutableEntityType ResolveOtherEntityType( + public static IMutableEntityType GetRelatedEntityType( [NotNull] this IMutableForeignKey foreignKey, [NotNull] IMutableEntityType entityType) - => (IMutableEntityType)((IForeignKey)foreignKey).ResolveOtherEntityType(entityType); + => (IMutableEntityType)((IForeignKey)foreignKey).GetRelatedEntityType(entityType); /// /// Returns a navigation associated with this foreign key. diff --git a/src/EFCore/Metadata/Conventions/RelationshipDiscoveryConvention.cs b/src/EFCore/Metadata/Conventions/RelationshipDiscoveryConvention.cs index 9249413d176..ee94edb3a1d 100644 --- a/src/EFCore/Metadata/Conventions/RelationshipDiscoveryConvention.cs +++ b/src/EFCore/Metadata/Conventions/RelationshipDiscoveryConvention.cs @@ -406,7 +406,7 @@ private static bool CanMergeWith( { var fk = existingNavigation.ForeignKey; return (fk.IsSelfReferencing() - || fk.ResolveOtherEntityType(existingNavigation.DeclaringEntityType) == inverseEntityTypeBuilder.Metadata) + || fk.GetRelatedEntityType(existingNavigation.DeclaringEntityType) == inverseEntityTypeBuilder.Metadata) && fk.Builder.CanSetNavigation(inverse, !existingNavigation.IsDependentToPrincipal()); } diff --git a/src/EFCore/Metadata/Internal/ForeignKey.cs b/src/EFCore/Metadata/Internal/ForeignKey.cs index c060278d578..9bb53ccb5ae 100644 --- a/src/EFCore/Metadata/Internal/ForeignKey.cs +++ b/src/EFCore/Metadata/Internal/ForeignKey.cs @@ -713,7 +713,7 @@ public virtual IEnumerable FindNavigationsTo([NotNull] EntityType en /// doing so can result in application failures when updating to a new Entity Framework Core release. /// public virtual EntityType ResolveOtherEntityType([NotNull] EntityType entityType) - => (EntityType)((IForeignKey)this).ResolveOtherEntityType(entityType); + => (EntityType)((IForeignKey)this).GetRelatedEntityType(entityType); // Note: This is set and used only by IdentityMapFactoryFactory, which ensures thread-safety /// diff --git a/src/EFCore/Query/Pipeline/EntityEqualityRewritingExpressionVisitor.cs b/src/EFCore/Query/Pipeline/EntityEqualityRewritingExpressionVisitor.cs index 1f8dcefdea9..4fbc6eec30c 100644 --- a/src/EFCore/Query/Pipeline/EntityEqualityRewritingExpressionVisitor.cs +++ b/src/EFCore/Query/Pipeline/EntityEqualityRewritingExpressionVisitor.cs @@ -14,7 +14,6 @@ using Microsoft.EntityFrameworkCore.Query.Expressions.Internal; using Microsoft.EntityFrameworkCore.Query.Internal; using Microsoft.EntityFrameworkCore.Query.NavigationExpansion; -using Microsoft.EntityFrameworkCore.Query.NavigationExpansion.Visitors; namespace Microsoft.EntityFrameworkCore.Query.Pipeline { @@ -768,7 +767,8 @@ protected static Expression UnwrapLastNavigation(Expression expression) : null); protected static Expression Unwrap(Expression expression) - => expression switch { + => expression switch + { EntityReferenceExpression wrapper => wrapper.Underlying, LambdaExpression lambda when lambda.Body is EntityReferenceExpression wrapper => Expression.Lambda( @@ -777,9 +777,9 @@ protected static Expression Unwrap(Expression expression) lambda.TailCall, lambda.Parameters), _ => expression - }; + }; - public class EntityReferenceExpression : Expression + protected class EntityReferenceExpression : Expression { public override ExpressionType NodeType => ExpressionType.Extension; @@ -900,7 +900,7 @@ public virtual void Print(ExpressionPrinter expressionPrinter) } } - public override string ToString() => $"{Underlying}[{(IsEntityType ? EntityType.ShortName(): "AnonymousObject")}{(SubqueryTraversed ? ", Subquery" : "")}]"; + public override string ToString() => $"{Underlying}[{(IsEntityType ? EntityType.ShortName() : "AnonymousObject")}{(SubqueryTraversed ? ", Subquery" : "")}]"; } } } diff --git a/test/EFCore.Tests/Metadata/Internal/ForeignKeyTest.cs b/test/EFCore.Tests/Metadata/Internal/ForeignKeyTest.cs index d13096f977f..94815b4c783 100644 --- a/test/EFCore.Tests/Metadata/Internal/ForeignKeyTest.cs +++ b/test/EFCore.Tests/Metadata/Internal/ForeignKeyTest.cs @@ -593,8 +593,8 @@ public void Can_find_targets_for_non_hierarchical_foreign_keys() { var fk = CreateOneToManyFK(); - Assert.Same(fk.PrincipalEntityType, fk.ResolveOtherEntityType(fk.DeclaringEntityType)); - Assert.Same(fk.DeclaringEntityType, fk.ResolveOtherEntityType(fk.PrincipalEntityType)); + Assert.Same(fk.PrincipalEntityType, fk.GetRelatedEntityType(fk.DeclaringEntityType)); + Assert.Same(fk.DeclaringEntityType, fk.GetRelatedEntityType(fk.PrincipalEntityType)); Assert.Equal(new[] { fk.PrincipalToDependent }, fk.FindNavigationsFrom(fk.PrincipalEntityType)); Assert.Equal(new[] { fk.DependentToPrincipal }, fk.FindNavigationsFrom(fk.DeclaringEntityType)); Assert.Equal(new[] { fk.DependentToPrincipal }, fk.FindNavigationsTo(fk.PrincipalEntityType)); @@ -622,8 +622,8 @@ public void Can_find_targets_for_same_base_foreign_keys() var derivedDependent = model.AddEntityType(typeof(DerivedOneToManyDependent)); derivedDependent.BaseType = fk.DeclaringEntityType; - Assert.Same(fk.PrincipalEntityType, fk.ResolveOtherEntityType(fk.DeclaringEntityType)); - Assert.Same(fk.DeclaringEntityType, fk.ResolveOtherEntityType(fk.PrincipalEntityType)); + Assert.Same(fk.PrincipalEntityType, fk.GetRelatedEntityType(fk.DeclaringEntityType)); + Assert.Same(fk.DeclaringEntityType, fk.GetRelatedEntityType(fk.PrincipalEntityType)); Assert.Same(fk.PrincipalToDependent, fk.FindNavigationsFrom(fk.PrincipalEntityType).SingleOrDefault()); Assert.Same(fk.DependentToPrincipal, fk.FindNavigationsFrom(fk.DeclaringEntityType).SingleOrDefault()); Assert.Same(fk.DependentToPrincipal, fk.FindNavigationsTo(fk.PrincipalEntityType).SingleOrDefault()); @@ -641,11 +641,11 @@ public void Can_find_targets_for_same_base_foreign_keys() Assert.Equal( CoreStrings.EntityTypeNotInRelationshipStrict( derivedDependent.DisplayName(), fk.DeclaringEntityType.DisplayName(), fk.PrincipalEntityType.DisplayName()), - Assert.Throws(() => fk.ResolveOtherEntityType(derivedDependent)).Message); + Assert.Throws(() => fk.GetRelatedEntityType(derivedDependent)).Message); Assert.Equal( CoreStrings.EntityTypeNotInRelationshipStrict( derivedPrincipal.DisplayName(), fk.DeclaringEntityType.DisplayName(), fk.PrincipalEntityType.DisplayName()), - Assert.Throws(() => fk.ResolveOtherEntityType(derivedPrincipal)).Message); + Assert.Throws(() => fk.GetRelatedEntityType(derivedPrincipal)).Message); Assert.Equal( CoreStrings.EntityTypeNotInRelationshipStrict( derivedPrincipal.DisplayName(), fk.DeclaringEntityType.DisplayName(), fk.PrincipalEntityType.DisplayName()), @@ -678,8 +678,8 @@ public void Can_find_targets_for_self_ref_foreign_keys() { var fk = CreateSelfRefFK(); - Assert.Same(fk.PrincipalEntityType, fk.ResolveOtherEntityType(fk.DeclaringEntityType)); - Assert.Same(fk.DeclaringEntityType, fk.ResolveOtherEntityType(fk.PrincipalEntityType)); + Assert.Same(fk.PrincipalEntityType, fk.GetRelatedEntityType(fk.DeclaringEntityType)); + Assert.Same(fk.DeclaringEntityType, fk.GetRelatedEntityType(fk.PrincipalEntityType)); Assert.Equal( new[] { fk.PrincipalToDependent, fk.DependentToPrincipal }, @@ -713,8 +713,8 @@ public void Can_finding_targets_for_same_hierarchy_foreign_keys() { var fk = CreateOneToManySameHierarchyFK(); - Assert.Same(fk.PrincipalEntityType, fk.ResolveOtherEntityType(fk.DeclaringEntityType)); - Assert.Same(fk.DeclaringEntityType, fk.ResolveOtherEntityType(fk.PrincipalEntityType)); + Assert.Same(fk.PrincipalEntityType, fk.GetRelatedEntityType(fk.DeclaringEntityType)); + Assert.Same(fk.DeclaringEntityType, fk.GetRelatedEntityType(fk.PrincipalEntityType)); Assert.Same(fk.PrincipalToDependent, fk.FindNavigationsFrom(fk.PrincipalEntityType).SingleOrDefault()); Assert.Same(fk.DependentToPrincipal, fk.FindNavigationsFrom(fk.DeclaringEntityType).SingleOrDefault()); Assert.Same(fk.DependentToPrincipal, fk.FindNavigationsTo(fk.PrincipalEntityType).SingleOrDefault()); @@ -765,11 +765,11 @@ public void Finding_targets_throws_for_entity_types_not_in_the_relationship() Assert.Equal( CoreStrings.EntityTypeNotInRelationshipStrict( unrelatedType.DisplayName(), fk.DeclaringEntityType.DisplayName(), fk.PrincipalEntityType.DisplayName()), - Assert.Throws(() => fk.ResolveOtherEntityType(unrelatedType)).Message); + Assert.Throws(() => fk.GetRelatedEntityType(unrelatedType)).Message); Assert.Equal( CoreStrings.EntityTypeNotInRelationshipStrict( unrelatedType.DisplayName(), fk.DeclaringEntityType.DisplayName(), fk.PrincipalEntityType.DisplayName()), - Assert.Throws(() => fk.ResolveOtherEntityType(unrelatedType)).Message); + Assert.Throws(() => fk.GetRelatedEntityType(unrelatedType)).Message); Assert.Equal( CoreStrings.EntityTypeNotInRelationshipStrict(