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
ModelValidatorDependenciesParameter object containing dependencies for this service.
Properties
Dependencies
Dependencies for this service.
protected virtual ModelValidatorDependencies Dependencies { get; }
Property Value
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
TypeThe target CLR type.
conventionModel
IConventionModelThe model.
Returns
IsRedundant(IForeignKey)
Returns a value indicating whether the given foreign key is redundant.
protected virtual bool IsRedundant(IForeignKey foreignKey)
Parameters
foreignKey
IForeignKeyA 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
IModelThe 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
stringThe property CLR type.
typeBase
IConventionTypeBaseThe structural type.
unmappedProperty
IConventionPropertyThe property.
Validate(IModel, IDiagnosticsLogger<Validation>)
public virtual void Validate(IModel model, IDiagnosticsLogger<DbLoggerCategory.Model.Validation> logger)
Parameters
model
IModellogger
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
IModelThe 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
IModelThe 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
IModelThe 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
IEntityTypeThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe 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
IModelThe model to validate.
logger
IDiagnosticsLogger<DbLoggerCategory.Model.Validation>The logger to use.