Table of Contents

Class ModelValidator

Namespace
Microsoft.EntityFrameworkCore.Infrastructure
Assembly
Microsoft.EntityFrameworkCore.dll

The validator that enforces core rules common for all providers.

public class ModelValidator : IModelValidator
Inheritance
ModelValidator
Implements
Inherited Members

Remarks

The service lifetime is Singleton. This means a single instance is used by many DbContext instances. The implementation must be thread-safe. This service cannot depend on services registered as Scoped.

See Implementation of database providers and extensions for more information and examples.

Constructors

ModelValidator(ModelValidatorDependencies)

Creates a new instance of ModelValidator.

public ModelValidator(ModelValidatorDependencies dependencies)

Parameters

dependencies ModelValidatorDependencies

Parameter object containing dependencies for this service.

Properties

Dependencies

Dependencies for this service.

protected virtual ModelValidatorDependencies Dependencies { get; }

Property Value

ModelValidatorDependencies

Methods

IsOwned(Type, IConventionModel)

Returns a value indicating whether that target CLR type would correspond to an owned entity type.

protected virtual bool IsOwned(Type targetType, IConventionModel conventionModel)

Parameters

targetType Type

The target CLR type.

conventionModel IConventionModel

The model.

Returns

bool

true if the given CLR type corresponds to an owned entity type.

IsRedundant(IForeignKey)

Returns a value indicating whether the given foreign key is redundant.

protected virtual bool IsRedundant(IForeignKey foreignKey)

Parameters

foreignKey IForeignKey

A foreign key.

Returns

bool

A value indicating whether the given foreign key is redundant.

LogShadowProperties(IModel, IDiagnosticsLogger<Validation>)

Logs all shadow properties that were created because there was no matching CLR member.

protected virtual void LogShadowProperties(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ThrowPropertyNotMappedException(string, IConventionTypeBase, IConventionProperty)

Throws an InvalidOperationException with a message containing provider-specific information, when available, indicating possible reasons why the property cannot be mapped.

protected virtual void ThrowPropertyNotMappedException(string propertyType, IConventionTypeBase typeBase, IConventionProperty unmappedProperty)

Parameters

propertyType string

The property CLR type.

typeBase IConventionTypeBase

The structural type.

unmappedProperty IConventionProperty

The property.

Validate(IModel, IDiagnosticsLogger<Validation>)

public virtual void Validate(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel
logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

ValidateChangeTrackingStrategy(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of change tracking in the model.

protected virtual void ValidateChangeTrackingStrategy(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateClrInheritance(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of inheritance in the model.

protected virtual void ValidateClrInheritance(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateData(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of data (e.g. seed data) in the model.

protected virtual void ValidateData(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateDiscriminatorValues(IEntityType)

Validates the discriminator and values for all entity types derived from the given one.

protected virtual void ValidateDiscriminatorValues(IEntityType rootEntityType)

Parameters

rootEntityType IEntityType

The entity type to validate.

ValidateFieldMapping(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of properties mapped to fields in the model.

protected virtual void ValidateFieldMapping(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateForeignKeys(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of foreign keys in the model.

protected virtual void ValidateForeignKeys(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateIgnoredMembers(IModel, IDiagnosticsLogger<Validation>)

Validates that no attempt is made to ignore inherited properties.

protected virtual void ValidateIgnoredMembers(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateInheritanceMapping(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping of inheritance in the model.

protected virtual void ValidateInheritanceMapping(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateNoCycles(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of the model for cycles.

protected virtual void ValidateNoCycles(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateNoMutableKeys(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of mutable in the model.

protected virtual void ValidateNoMutableKeys(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateNoShadowKeys(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of shadow keys in the model.

protected virtual void ValidateNoShadowKeys(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateNonNullPrimaryKeys(IModel, IDiagnosticsLogger<Validation>)

Validates that all trackable entity types have a primary key.

protected virtual void ValidateNonNullPrimaryKeys(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateOwnership(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of ownership in the model.

protected virtual void ValidateOwnership(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidatePrimitiveCollections(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping of primitive collection properties the model.

protected virtual void ValidatePrimitiveCollections(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidatePropertyMapping(IModel, IDiagnosticsLogger<Validation>)

Validates property mappings.

protected virtual void ValidatePropertyMapping(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateQueryFilters(IModel, IDiagnosticsLogger<Validation>)

Validates the mapping/configuration of query filters in the model.

protected virtual void ValidateQueryFilters(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateRelationships(IModel, IDiagnosticsLogger<Validation>)

Validates relationships.

protected virtual void ValidateRelationships(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateTriggers(IModel, IDiagnosticsLogger<Validation>)

Validates triggers.

protected virtual void ValidateTriggers(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.

ValidateTypeMappings(IModel, IDiagnosticsLogger<Validation>)

Validates the type mapping of properties the model.

protected virtual void ValidateTypeMappings(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)

Parameters

model IModel

The model to validate.

logger IDiagnosticsLogger<DbLoggerCategory.Model.Validation>

The logger to use.