Share via


IConventionNavigation Interface

Definition

Represents a navigation property which can be used to navigate a relationship.

public interface IConventionNavigation : Microsoft.EntityFrameworkCore.Metadata.IConventionPropertyBase, Microsoft.EntityFrameworkCore.Metadata.INavigation
public interface IConventionNavigation : Microsoft.EntityFrameworkCore.Metadata.IConventionNavigationBase, Microsoft.EntityFrameworkCore.Metadata.INavigation
public interface IConventionNavigation : Microsoft.EntityFrameworkCore.Metadata.IConventionNavigationBase, Microsoft.EntityFrameworkCore.Metadata.IReadOnlyNavigation
type IConventionNavigation = interface
    interface INavigation
    interface IPropertyBase
    interface IAnnotatable
    interface IConventionPropertyBase
    interface IConventionAnnotatable
type IConventionNavigation = interface
    interface INavigation
    interface INavigationBase
    interface IPropertyBase
    interface IAnnotatable
    interface IConventionNavigationBase
    interface IConventionPropertyBase
    interface IConventionAnnotatable
type IConventionNavigation = interface
    interface IReadOnlyNavigation
    interface IReadOnlyNavigationBase
    interface IReadOnlyPropertyBase
    interface IReadOnlyAnnotatable
    interface IConventionNavigationBase
    interface IConventionPropertyBase
    interface IConventionAnnotatable
Public Interface IConventionNavigation
Implements IConventionPropertyBase, INavigation
Public Interface IConventionNavigation
Implements IConventionNavigationBase, INavigation
Public Interface IConventionNavigation
Implements IConventionNavigationBase, IReadOnlyNavigation
Implements

Remarks

This interface is used during model creation and allows the metadata to be modified. Once the model is built, INavigation represents a read-only view of the same metadata.

See Model building conventions for more information and examples.

Properties

Builder

Gets the builder that can be used to configure this navigation.

ClrType

Gets the type of value that this property-like object holds.

(Inherited from IReadOnlyPropertyBase)
DeclaringEntityType

Gets the type that this navigation property belongs to.

DeclaringType

Gets the type that this property-like object belongs to.

(Inherited from IReadOnlyPropertyBase)
FieldInfo

Gets the FieldInfo for the underlying CLR field for this property-like object. This may be null for shadow properties or if the backing field is not known.

(Inherited from IReadOnlyPropertyBase)
ForeignKey

Gets the foreign key that defines the relationship this navigation property will navigate.

Inverse

Gets the inverse navigation.

IsCollection

Gets a value indicating whether the navigation property is a collection property.

(Inherited from IReadOnlyNavigationBase)
IsEagerLoaded

Gets a value indicating whether this navigation should be eager loaded by default.

(Inherited from IReadOnlyNavigationBase)
IsInModel

Indicates whether this object is in a model, i.e. hasn't been removed from one.

(Inherited from IConventionAnnotatable)
IsOnDependent

Gets a value indicating whether the navigation property is defined on the dependent side of the underlying foreign key.

(Inherited from IReadOnlyNavigation)
Item[String]

Gets the value of the annotation with the given name, returning null if it does not exist.

(Inherited from IReadOnlyAnnotatable)
LazyLoadingEnabled

Determines whether or not this navigation should lazy-load if lazy-loading is enabled and a mechanism for lazy-loading has been configured in the model.

(Inherited from IReadOnlyNavigationBase)
Name

Gets the name of this property-like object.

(Inherited from IReadOnlyPropertyBase)
PropertyInfo

Gets the PropertyInfo for the underlying CLR property for this property-like object. This may be null for shadow properties or if mapped directly to a field.

(Inherited from IReadOnlyPropertyBase)
Sentinel

Gets the sentinel value that indicates that this property is not set.

(Inherited from IReadOnlyPropertyBase)
TargetEntityType

Gets the entity type that this navigation property will hold an instance(s) of.

Methods

AddAnnotation(String, Object, Boolean)

Adds an annotation to this object. Throws if an annotation with the specified name already exists.

(Inherited from IConventionAnnotatable)
AddAnnotations(IEnumerable<IConventionAnnotation>, Boolean)

Adds annotations to an object.

(Inherited from IConventionAnnotatable)
AddRuntimeAnnotation(String, Object)

Adds a runtime annotation to this object. Throws if an annotation with the specified name already exists.

(Inherited from IAnnotatable)
AnnotationsToDebugString(Int32)

Gets the debug string for all annotations declared on the object.

(Inherited from IReadOnlyAnnotatable)
FindAnnotation(String)

Gets the annotation with the given name, returning null if it does not exist.

(Inherited from IReadOnlyAnnotatable)
FindRuntimeAnnotation(String)

Gets the runtime annotation with the given name, returning null if it does not exist.

(Inherited from IAnnotatable)
FindRuntimeAnnotationValue(String)

Gets the value of the runtime annotation with the given name, returning null if it does not exist.

(Inherited from IAnnotatable)
GetAnnotation(String)

Gets the annotation with the given name, throwing if it does not exist.

(Inherited from IReadOnlyAnnotatable)
GetAnnotations()

Gets all annotations on the current object.

(Inherited from IReadOnlyAnnotatable)
GetCollectionAccessor()

Gets the IClrCollectionAccessor for this navigation property, if it's a collection navigation.

(Inherited from INavigationBase)
GetConfigurationSource()

Returns the configuration source for this property.

(Inherited from IConventionPropertyBase)
GetCurrentValueComparer()

Gets a IComparer<T> for comparing values in tracked IUpdateEntry entries.

(Inherited from IPropertyBase)
GetFieldInfoConfigurationSource()

Returns the configuration source for FieldInfo.

(Inherited from IConventionPropertyBase)
GetFieldName()

Gets the name of the backing field for this property, or null if the backing field is not known.

(Inherited from IReadOnlyPropertyBase)
GetGetter()

Gets a IClrPropertyGetter for reading the value of this property.

(Inherited from IPropertyBase)
GetIndex()

Gets the property index for this property.

(Inherited from IPropertyBase)
GetInverseConfigurationSource()

Returns the configuration source for Inverse.

GetIsEagerLoadedConfigurationSource()

Returns the configuration source for IsEagerLoaded.

(Inherited from IConventionNavigationBase)
GetLazyLoadingEnabledConfigurationSource()

Returns the configuration source for LazyLoadingEnabled.

(Inherited from IConventionNavigationBase)
GetMemberInfo(Boolean, Boolean)

Gets the PropertyInfo or FieldInfo that should be used to get or set a value for the given property.

(Inherited from IPropertyBase)
GetOrAddRuntimeAnnotationValue<TValue,TArg>(String, Func<TArg,TValue>, TArg)

Gets the value of the runtime annotation with the given name, adding it if one does not exist.

(Inherited from IAnnotatable)
GetPropertyAccessMode()

Gets the PropertyAccessMode being used for this property-like object.

(Inherited from IReadOnlyPropertyBase)
GetPropertyAccessModeConfigurationSource()

Returns the configuration source for GetPropertyAccessMode().

(Inherited from IConventionPropertyBase)
GetRuntimeAnnotations()

Gets all the runtime annotations on the current object.

(Inherited from IAnnotatable)
IsIndexerProperty()

Gets a value indicating whether this is an indexer property. An indexer property is one that is accessed through an indexer on the entity class.

(Inherited from IReadOnlyPropertyBase)
IsShadowProperty()

Gets a value indicating whether this is a shadow property. A shadow property is one that does not have a corresponding property in the entity class. The current value for the property is stored in the ChangeTracker rather than being stored in instances of the entity class.

(Inherited from IReadOnlyPropertyBase)
RemoveAnnotation(String)

Removes the annotation with the given name from this object.

(Inherited from IConventionAnnotatable)
RemoveRuntimeAnnotation(String)

Removes the given runtime annotation from this object.

(Inherited from IAnnotatable)
SetAnnotation(String, Object, Boolean)

Sets the annotation stored under the given name. Overwrites the existing annotation if an annotation with the specified name already exists.

(Inherited from IConventionAnnotatable)
SetField(FieldInfo, Boolean)
Obsolete.

Sets the FieldInfo for the underlying CLR field that this property should use.

By default, the backing field, if one is found or has been specified, is used when new objects are constructed, typically when entities are queried from the database. Properties are used for all other accesses. This can be changed by calling SetPropertyAccessMode(Nullable<PropertyAccessMode>, Boolean).

(Inherited from IConventionPropertyBase)
SetField(String, Boolean)

Sets the underlying CLR field that this property should use. This may be null for shadow properties or if the backing field for the property is not known.

(Inherited from IConventionPropertyBase)
SetFieldInfo(FieldInfo, Boolean)

Sets the FieldInfo for the underlying CLR field that this property should use.

(Inherited from IConventionPropertyBase)
SetInverse(MemberInfo, Boolean)

Sets the inverse navigation.

SetInverse(String, Boolean)

Sets the inverse navigation.

SetIsEagerLoaded(Nullable<Boolean>, Boolean)

Sets a value indicating whether this navigation should be eager loaded by default.

(Inherited from IConventionNavigationBase)
SetIsLoadedWhenNoTracking(Object)

Calls SetLoaded(Object, String, Boolean) for a INavigationBase to mark it as loaded when a no-tracking query has eagerly loaded this relationship.

(Inherited from INavigationBase)
SetLazyLoadingEnabled(Nullable<Boolean>, Boolean)

Sets a value indicating whether this navigation should be lazy-loaded, if lazy-loading is enabled and in place.

(Inherited from IConventionNavigationBase)
SetOrRemoveAnnotation(String, Object, Boolean)

Sets the annotation stored under the given name. Overwrites the existing annotation if an annotation with the specified name already exists. Removes the existing annotation if null is supplied.

(Inherited from IConventionAnnotatable)
SetPropertyAccessMode(Nullable<PropertyAccessMode>, Boolean)

Sets the PropertyAccessMode to use for this property.

(Inherited from IConventionPropertyBase)
SetRuntimeAnnotation(String, Object)

Sets the runtime annotation stored under the given key. Overwrites the existing annotation if an annotation with the specified name already exists.

(Inherited from IAnnotatable)
ToDebugString(MetadataDebugStringOptions, Int32)

Creates a human-readable representation of the given metadata.

Warning: Do not rely on the format of the returned string. It is designed for debugging only and may change arbitrarily between releases.

(Inherited from IReadOnlyNavigation)

Explicit Interface Implementations

IConventionPropertyBase.GetConfigurationSource()

Returns the configuration source for this navigation property.

INavigationBase.DeclaringEntityType

Gets the entity type that this navigation property belongs to.

(Inherited from INavigation)
INavigationBase.GetCollectionAccessor()

Gets the IClrCollectionAccessor for this navigation property, if it's a collection navigation.

(Inherited from INavigation)
INavigationBase.Inverse

Gets the inverse navigation.

(Inherited from INavigation)
INavigationBase.IsCollection

Gets a value indicating whether the navigation property is a collection property.

(Inherited from INavigation)
INavigationBase.TargetEntityType

Gets the entity type that this navigation property will hold an instance(s) of.

(Inherited from INavigation)
IPropertyBase.GetPropertyAccessMode()

Gets the PropertyAccessMode being used for this property. null indicates that the default property access mode is being used.

(Inherited from INavigationBase)
IReadOnlyNavigationBase.DeclaringEntityType

Gets the entity type that this navigation property belongs to.

(Inherited from IReadOnlyNavigation)
IReadOnlyNavigationBase.Inverse

Gets the inverse navigation.

(Inherited from IReadOnlyNavigation)
IReadOnlyNavigationBase.IsCollection

Gets a value indicating whether the navigation property is a collection property.

(Inherited from IReadOnlyNavigation)
IReadOnlyNavigationBase.TargetEntityType

Gets the entity type that this navigation property will hold an instance(s) of.

(Inherited from IReadOnlyNavigation)
IReadOnlyPropertyBase.IsShadowProperty()

Gets a value indicating whether this is a shadow property. A shadow property is one that does not have a corresponding property in the entity class. The current value for the property is stored in the ChangeTracker rather than being stored in instances of the entity class.

(Inherited from IReadOnlyNavigationBase)

Extension Methods

AddAnnotations(IConventionAnnotatable, IEnumerable<IConventionAnnotation>, Boolean)

Adds annotations to an object.

GetAnnotation(IConventionAnnotatable, String)

Gets the annotation with the given name, throwing if it does not exist.

SetOrRemoveAnnotation(IConventionAnnotatable, String, Object, Boolean)

Sets the annotation stored under the given name. Overwrites the existing annotation if an annotation with the specified name already exists. Removes the existing annotation if null is supplied.

FindInverse(IConventionNavigation)
Obsolete.

Gets the navigation property on the other end of the relationship. Returns null if there is no navigation property defined on the other end of the relationship.

GetIsEagerLoadedConfigurationSource(IConventionNavigation)

Returns the configuration source for IsEagerLoaded(INavigation).

GetTargetType(IConventionNavigation)
Obsolete.

Gets the entity type that a given navigation property will hold an instance of (or hold instances of if it is a collection navigation).

SetIsEagerLoaded(IConventionNavigation, Nullable<Boolean>, Boolean)

Sets a value indicating whether this navigation should be eager loaded by default.

GetPropertyAccessModeConfigurationSource(IConventionPropertyBase)

Returns the configuration source for GetPropertyAccessMode().

SetField(IConventionPropertyBase, String, Boolean)

Sets the underlying CLR field that this property should use. This may be null for shadow properties or if the backing field for the property is not known.

Backing fields are normally found by convention as described here: http://go.microsoft.com/fwlink/?LinkId=723277. This method is useful for setting backing fields explicitly in cases where the correct field is not found by convention.

By default, the backing field, if one is found or has been specified, is used when new objects are constructed, typically when entities are queried from the database. Properties are used for all other accesses. This can be changed by calling SetPropertyAccessMode(IConventionPropertyBase, Nullable<PropertyAccessMode>, Boolean).

SetPropertyAccessMode(IConventionPropertyBase, Nullable<PropertyAccessMode>, Boolean)

Sets the PropertyAccessMode to use for this property.

AnnotationsToDebugString(IAnnotatable, Int32)

Gets the debug string for all annotations declared on the object.

GetAnnotation(IAnnotatable, String)

Gets the annotation with the given name, throwing if it does not exist.

SetIsLoadedWhenNoTracking(INavigationBase, Object)

Calls SetLoaded(Object, String, Boolean) for a INavigationBase to mark it as loaded when a no-tracking query has eagerly loaded this relationship.

FindInverse(INavigation)
Obsolete.
Obsolete.

Gets the navigation property on the other end of the relationship. Returns null if there is no navigation property defined on the other end of the relationship.

GetCollectionAccessor(INavigation)

Gets the IClrCollectionAccessor for this navigation property, which must be a collection navigation.

GetTargetType(INavigation)
Obsolete.
Obsolete.

Gets the entity type that a given navigation property will hold an instance of (or hold instances of if it is a collection navigation).

IsCollection(INavigation)
Obsolete.
Obsolete.

Gets a value indicating whether the given navigation property is a collection property.

IsDependentToPrincipal(INavigation)
Obsolete.
Obsolete.

Gets a value indicating whether the given navigation property is the navigation property on the dependent entity type that points to the principal entity.

IsEagerLoaded(INavigation)
Obsolete.
Obsolete.

Gets a value indicating whether this navigation should be eager loaded by default.

ToDebugString(INavigation, MetadataDebugStringOptions, Int32)

Creates a human-readable representation of the given metadata.

Warning: Do not rely on the format of the returned string. It is designed for debugging only and may change arbitrarily between releases.

GetCurrentValueComparer(IPropertyBase)

Gets a IComparer<T> for comparing values in tracked IUpdateEntry entries.

GetFieldName(IPropertyBase)

Gets the name of the backing field for this property, or null if the backing field is not known.

GetGetter(IPropertyBase)

Gets a IClrPropertyGetter for reading the value of this property.

Note that it is an error to call this method for a shadow property (IsShadowProperty(IPropertyBase)) since such a property has no associated MemberInfo.

GetIndex(IPropertyBase)

Gets the property index for this property.

GetMemberInfo(IPropertyBase, Boolean, Boolean)

Gets the PropertyInfo or FieldInfo that should be used to get or set a value for the given property.

Note that it is an error to call this method for a shadow property (IsShadowProperty(IPropertyBase)) since such a property has no associated MemberInfo.

GetPropertyAccessMode(IPropertyBase)

Gets the PropertyAccessMode being used for this property. null indicates that the default property access mode is being used.

IsIndexerProperty(IPropertyBase)

Gets a value indicating whether this is an indexer property. An indexer property is one that is accessed through an indexer on the entity class.

IsShadowProperty(IPropertyBase)
Obsolete.

Gets a value indicating whether this is a shadow property. A shadow property is one that does not have a corresponding property in the entity class. The current value for the property is stored in the ChangeTracker rather than being stored in instances of the entity class.

Applies to