Table of Contents

Class ForeignKeyAttributeConvention

Namespace
Microsoft.EntityFrameworkCore.Metadata.Conventions
Assembly
Microsoft.EntityFrameworkCore.dll

A convention that configures the foreign key properties associated with a navigation property based on the ForeignKeyAttribute specified on the properties or the navigation properties.

public class ForeignKeyAttributeConvention : IEntityTypeAddedConvention, IForeignKeyAddedConvention, INavigationAddedConvention, ISkipNavigationForeignKeyChangedConvention, IPropertyAddedConvention, IComplexPropertyAddedConvention, IModelFinalizingConvention, IConvention
Inheritance
ForeignKeyAttributeConvention
Implements
Inherited Members

Remarks

For one-to-one relationships the attribute has to be specified on the navigation property pointing to the principal.

See Model building conventions for more information and examples.

Constructors

ForeignKeyAttributeConvention(ProviderConventionSetBuilderDependencies)

Creates a new instance of ForeignKeyAttributeConvention.

public ForeignKeyAttributeConvention(ProviderConventionSetBuilderDependencies dependencies)

Parameters

dependencies ProviderConventionSetBuilderDependencies

Parameter object containing dependencies for this convention.

Properties

Dependencies

Dependencies for this service.

protected virtual ProviderConventionSetBuilderDependencies Dependencies { get; }

Property Value

ProviderConventionSetBuilderDependencies

Methods

ProcessComplexPropertyAdded(IConventionComplexPropertyBuilder, IConventionContext<IConventionComplexPropertyBuilder>)

public virtual void ProcessComplexPropertyAdded(IConventionComplexPropertyBuilder propertyBuilder, IConventionContext<IConventionComplexPropertyBuilder> context)

Parameters

propertyBuilder IConventionComplexPropertyBuilder
context IConventionContext<IConventionComplexPropertyBuilder>

ProcessEntityTypeAdded(IConventionEntityTypeBuilder, IConventionContext<IConventionEntityTypeBuilder>)

public virtual void ProcessEntityTypeAdded(IConventionEntityTypeBuilder entityTypeBuilder, IConventionContext<IConventionEntityTypeBuilder> context)

Parameters

entityTypeBuilder IConventionEntityTypeBuilder
context IConventionContext<IConventionEntityTypeBuilder>

ProcessForeignKeyAdded(IConventionForeignKeyBuilder, IConventionContext<IConventionForeignKeyBuilder>)

Called after a foreign key is added to the entity type.

public virtual void ProcessForeignKeyAdded(IConventionForeignKeyBuilder relationshipBuilder, IConventionContext<IConventionForeignKeyBuilder> context)

Parameters

relationshipBuilder IConventionForeignKeyBuilder

The builder for the foreign key.

context IConventionContext<IConventionForeignKeyBuilder>

Additional information associated with convention execution.

ProcessModelFinalizing(IConventionModelBuilder, IConventionContext<IConventionModelBuilder>)

public virtual void ProcessModelFinalizing(IConventionModelBuilder modelBuilder, IConventionContext<IConventionModelBuilder> context)

Parameters

modelBuilder IConventionModelBuilder
context IConventionContext<IConventionModelBuilder>

ProcessNavigationAdded(IConventionNavigationBuilder, IConventionContext<IConventionNavigationBuilder>)

Called after a navigation is added to the entity type.

public virtual void ProcessNavigationAdded(IConventionNavigationBuilder navigationBuilder, IConventionContext<IConventionNavigationBuilder> context)

Parameters

navigationBuilder IConventionNavigationBuilder

The builder for the navigation.

context IConventionContext<IConventionNavigationBuilder>

Additional information associated with convention execution.

ProcessPropertyAdded(IConventionPropertyBuilder, IConventionContext<IConventionPropertyBuilder>)

public virtual void ProcessPropertyAdded(IConventionPropertyBuilder propertyBuilder, IConventionContext<IConventionPropertyBuilder> context)

Parameters

propertyBuilder IConventionPropertyBuilder
context IConventionContext<IConventionPropertyBuilder>

ProcessSkipNavigationForeignKeyChanged(IConventionSkipNavigationBuilder, IConventionForeignKey?, IConventionForeignKey?, IConventionContext<IConventionForeignKey>)

public virtual void ProcessSkipNavigationForeignKeyChanged(IConventionSkipNavigationBuilder skipNavigationBuilder, IConventionForeignKey? foreignKey, IConventionForeignKey? oldForeignKey, IConventionContext<IConventionForeignKey> context)

Parameters

skipNavigationBuilder IConventionSkipNavigationBuilder
foreignKey IConventionForeignKey
oldForeignKey IConventionForeignKey
context IConventionContext<IConventionForeignKey>