IModel 接口

定义

有关实体形状、实体之间的关系以及它们如何映射到数据库的元数据。 模型通常是通过在派生 DbContext的 上重写 OnModelCreating(ModelBuilder) 方法创建的。

public interface IModel : Microsoft.EntityFrameworkCore.Infrastructure.IAnnotatable
public interface IModel : Microsoft.EntityFrameworkCore.Infrastructure.IAnnotatable, Microsoft.EntityFrameworkCore.Metadata.IReadOnlyModel
type IModel = interface
    interface IAnnotatable
type IModel = interface
    interface IReadOnlyModel
    interface IReadOnlyAnnotatable
    interface IAnnotatable
Public Interface IModel
Implements IAnnotatable
Public Interface IModel
Implements IAnnotatable, IReadOnlyModel
派生
实现

注解

服务生存期为 Scoped。 这意味着每个 DbContext 实例都将使用此服务自己的实例。 实现可能依赖于使用任何生存期注册的其他服务。 实现不需要是线程安全的。

有关详细信息和示例,请参阅 为实体类型和关系建模

属性

Item[String]

获取具有给定名称的批注的值,如果不存在,则返回 null 该值。

(继承自 IReadOnlyAnnotatable)
ModelDependencies

运行时服务依赖项。

ModelId

这是一个支持 Entity Framework Core 基础结构的内部 API,不受与公共 API 相同的兼容性标准的约束。 可能会在任何版本中更改或删除它,而无需通知。 仅应在代码中非常谨慎地直接使用它,并且知道在更新到新的 Entity Framework Core 版本时这样做可能会导致应用程序失败。

(继承自 IReadOnlyModel)

方法

AddRuntimeAnnotation(String, Object)

向此对象添加运行时注释。 如果已存在具有指定名称的批注,则引发 。

(继承自 IAnnotatable)
AnnotationsToDebugString(Int32)

获取对象上声明的所有注释的调试字符串。

(继承自 IReadOnlyAnnotatable)
FindAnnotation(String)

获取具有给定名称的批注,如果不存在,则返回 null

(继承自 IReadOnlyAnnotatable)
FindEntityType(String)

获取具有给定名称的实体。 null如果未找到具有给定名称的实体类型,或者共享类型实体类型正在使用给定 CLR 类型,或者实体类型具有定义导航,则返回 。

FindEntityType(String, String, IEntityType)

获取给定名称的实体类型,定义导航名称和定义实体类型。 如果未找到匹配的 null 实体类型,则返回 。

FindEntityType(String, String, IReadOnlyEntityType)

获取给定基名称的实体类型,定义导航名称和定义实体类型。 如果未找到匹配的 null 实体类型,则返回 。

(继承自 IReadOnlyModel)
FindEntityType(Type)

获取映射给定实体类的实体。 null如果未找到具有给定 CLR 类型的实体类型,或者共享类型实体类型正在使用给定 CLR 类型,或者实体类型具有定义导航,则返回 。

FindEntityType(Type, String, IEntityType)

获取给定名称的实体类型,定义导航名称和定义实体类型。 如果未找到匹配的 null 实体类型,则返回 。

FindEntityType(Type, String, IReadOnlyEntityType)

获取给定类型的实体类型,定义导航名称和定义实体类型。 如果未找到匹配的 null 实体类型,则返回 。

(继承自 IReadOnlyModel)
FindEntityTypes(Type)

获取与给定类型匹配的实体类型。

FindLeastDerivedEntityTypes(Type, Func<IReadOnlyEntityType,Boolean>)

返回对应于给定 中最少派生类型的实体类型。

FindRuntimeAnnotation(String)

获取具有给定名称的运行时注释,如果不存在,则返回 null

(继承自 IAnnotatable)
FindRuntimeAnnotationValue(String)

获取具有给定名称的运行时注释的值,如果不存在,则 null 返回该值。

(继承自 IAnnotatable)
FindRuntimeEntityType(Type)

获取映射给定实体类的实体,其中类可能是派生自实际实体类型的代理。 null如果未找到具有给定 CLR 类型的实体类型,或者共享类型实体类型正在使用给定 CLR 类型,或者实体类型具有定义导航,则返回 。

FindTypeMappingConfiguration(Type)

查找给定标量 Type的预约定配置。

GetAnnotation(String)

获取具有给定名称的批注,如果不存在,则引发该批注。

(继承自 IReadOnlyAnnotatable)
GetAnnotations()

获取当前对象上的所有批注。

(继承自 IReadOnlyAnnotatable)
GetChangeTrackingStrategy()

获取用于模型中实体的默认更改跟踪策略。 此策略指示上下文如何检测实体类型实例的属性更改。

(继承自 IReadOnlyModel)
GetEntityTypes()

获取模型中定义的所有实体类型。

GetModelDependencies()

获取运行时服务依赖项。

GetOrAddRuntimeAnnotationValue<TValue,TArg>(String, Func<TArg,TValue>, TArg)

获取具有给定名称的运行时注释的值,如果不存在,请添加该值。

(继承自 IAnnotatable)
GetProductVersion()

获取用于生成此模型的 EF Core 程序集版本。

(继承自 IReadOnlyModel)
GetPropertyAccessMode()

PropertyAccessMode获取用于此模型中实体类型的属性的 。

(继承自 IReadOnlyModel)
GetRuntimeAnnotations()

获取当前 对象上的所有运行时注释。

(继承自 IAnnotatable)
GetTypeMappingConfigurations()

获取所有预约定配置。

IsIndexerMethod(MethodInfo)

获取一个值,该值指示给定 MethodInfo 是否表示索引器访问。

IsShared(Type)

获取一个值,该值指示模型中的共享类型实体是否使用 CLR 类型。

(继承自 IReadOnlyModel)
RemoveRuntimeAnnotation(String)

从此对象中删除给定的运行时注释。

(继承自 IAnnotatable)
SetRuntimeAnnotation(String, Object)

设置存储在给定键下的运行时注释。 如果具有指定名称的注释已存在,则覆盖现有批注。

(继承自 IAnnotatable)
ToDebugString(MetadataDebugStringOptions, Int32)

创建给定元数据的可读表示形式。

警告:不要依赖于返回的字符串的格式。 它仅用于调试,可能会在发布之间任意更改。

(继承自 IReadOnlyModel)

扩展方法

GetDefaultContainer(IModel)

返回默认容器名称。

GetDefaultContainer(IReadOnlyModel)

返回默认容器名称。

GetThroughput(IReadOnlyModel)

返回数据库范围内的预配吞吐量。

AnnotationsToDebugString(IAnnotatable, Int32)

获取对象上声明的所有注释的调试字符串。

GetAnnotation(IAnnotatable, String)

获取具有给定名称的批注,如果不存在,则引发该批注。

GetRelationalDependencies(IModel, String)

返回关系服务依赖项。

Scaffolding(IModel)

有关实体形状、实体之间的关系以及它们如何映射到数据库的元数据。 模型通常是通过在派生 DbContext的 上重写 OnModelCreating(ModelBuilder) 方法创建的。

FindEntityType(IModel, Type)
已过时。.

获取映射给定实体类的实体。 null如果未找到具有给定 CLR 类型的实体类型,或者共享类型实体类型正在使用给定 CLR 类型,或者实体类型具有定义导航,则返回 。

FindEntityType(IModel, Type, String, IEntityType)

获取给定类型的实体类型,定义导航名称和定义实体类型。 如果未找到匹配的 null 实体类型,则返回 。

FindRuntimeEntityType(IModel, Type)

获取映射给定实体类的实体,其中类可能是派生自实际实体类型的代理。 null如果未找到具有给定 CLR 类型的实体类型,或者共享类型实体类型正在使用给定 CLR 类型,或者实体类型具有定义导航,则返回 。

GetChangeTrackingStrategy(IModel)

获取用于模型中实体的默认更改跟踪策略。 此策略指示上下文如何检测实体类型实例的属性更改。

GetEntityTypes(IModel, String)
已过时。.

获取与给定名称匹配的实体类型。

GetEntityTypes(IModel, Type)
已过时。.

获取与给定类型匹配的实体类型。

GetProductVersion(IModel)

获取用于生成此模型的 EF Core 程序集版本

GetPropertyAccessMode(IModel)

PropertyAccessMode获取用于此模型中实体类型的属性的 。

请注意,单个实体类型可以替代此访问模式,实体类型的单个属性可以替代实体类型上设置的访问模式。 此处返回的值将用于未指定替代的任何属性。

HasEntityTypeWithDefiningNavigation(IModel, String)
已过时。.

获取一个值,该值指示模型是否包含具有定义导航的相应实体类型。

HasEntityTypeWithDefiningNavigation(IModel, Type)
已过时。.

获取一个值,该值指示模型是否包含具有定义导航的相应实体类型。

IsIndexerMethod(IModel, MethodInfo)

获取一个值,该值指示给定的 MethodInfo 是否重新发送索引器访问。

IsShared(IModel, Type)

获取模型中的共享类型实体是否使用 CLR 类型。

ToDebugString(IModel, MetadataDebugStringOptions, Int32)

创建给定元数据的可读表示形式。

警告:不要依赖于返回的字符串的格式。 它仅用于调试,可能会在发布之间任意更改。

Relational(IModel)

获取模型的关系数据库特定元数据。

FindDbFunction(IModel, MethodInfo)

查找映射到给定 MethodInfo表示的方法的函数。

FindDbFunction(IModel, String)

查找映射到由给定名称表示的方法的函数。

FindDbFunction(IReadOnlyModel, MethodInfo)

查找映射到给定 MethodInfo表示的方法的函数。

FindDbFunction(IReadOnlyModel, String)

查找映射到由给定名称表示的方法的函数。

FindSequence(IModel, String, String)

查找具有给定名称的序列。

FindSequence(IReadOnlyModel, String, String)

查找具有给定名称的序列。

GetCollation(IModel)

返回数据库排序规则。

GetCollation(IReadOnlyModel)

返回数据库排序规则。

GetDbFunctions(IModel)

返回模型中包含的所有函数。

GetDbFunctions(IReadOnlyModel)

返回模型中包含的所有函数。

GetDefaultSchema(IModel)

返回要用于模型的默认架构,或者 null 如果未设置任何架构,则返回 。

GetDefaultSchema(IReadOnlyModel)

返回要用于模型的默认架构,或者 null 如果未设置任何架构,则返回 。

GetMaxIdentifierLength(IModel)

返回存储标识符允许的最大长度。

GetMaxIdentifierLength(IReadOnlyModel)

返回存储标识符允许的最大长度。

GetRelationalModel(IModel)

返回数据库模型。

GetSequences(IModel)

返回模型中包含的所有序列。

GetSequences(IReadOnlyModel)

返回模型中包含的所有序列。

GetFluentApiCalls(IModel, IAnnotationCodeGenerator)

获取用于配置模型的 fluent API 调用。

Sqlite(IModel)

获取模型的 SQLite 特定元数据。

SqlServer(IModel)

获取模型的SQL Server特定元数据。

GetDatabaseMaxSize(IModel)

返回数据库的最大大小。

GetDatabaseMaxSize(IReadOnlyModel)

返回数据库的最大大小。

GetHiLoSequenceName(IModel)

返回要用于默认 hi-lo 序列的名称。

GetHiLoSequenceName(IReadOnlyModel)

返回要用于默认 hi-lo 序列的名称。

GetHiLoSequenceSchema(IModel)

返回要用于默认 hi-lo 序列的架构。 UseHiLo(PropertyBuilder, String, String)

GetHiLoSequenceSchema(IReadOnlyModel)

返回要用于默认 hi-lo 序列的架构。 UseHiLo(PropertyBuilder, String, String)

GetIdentityIncrement(IModel)

返回默认标识增量。

GetIdentityIncrement(IReadOnlyModel)

返回默认标识增量。

GetIdentitySeed(IModel)

返回默认标识种子。

GetIdentitySeed(IReadOnlyModel)

返回默认标识种子。

GetPerformanceLevelSql(IModel)

返回数据库的性能级别。

GetPerformanceLevelSql(IReadOnlyModel)

返回数据库的性能级别。

GetSequenceNameSuffix(IReadOnlyModel)

返回要追加到自动创建的序列名称的后缀。

GetSequenceSchema(IReadOnlyModel)

返回要用于默认值生成序列的架构。 UseSequence(PropertyBuilder, String, String)

GetServiceTierSql(IModel)

返回数据库的服务层。

GetServiceTierSql(IReadOnlyModel)

返回数据库的服务层。

GetValueGenerationStrategy(IModel)

SqlServerValueGenerationStrategy返回要用于模型中键的属性的 ,除非 属性具有显式设置的策略。

GetValueGenerationStrategy(IReadOnlyModel)

SqlServerValueGenerationStrategy返回要用于模型中键的属性的 ,除非 属性具有显式设置的策略。

适用于