RuntimeModel 类

定义

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

public class RuntimeModel : Microsoft.EntityFrameworkCore.Infrastructure.AnnotatableBase, Microsoft.EntityFrameworkCore.Metadata.Internal.IRuntimeModel
type RuntimeModel = class
    inherit AnnotatableBase
    interface IRuntimeModel
    interface IModel
    interface IReadOnlyModel
    interface IReadOnlyAnnotatable
    interface IAnnotatable
Public Class RuntimeModel
Inherits AnnotatableBase
Implements IRuntimeModel
继承
RuntimeModel
实现
IAnnotatable IReadOnlyAnnotatable IModel Microsoft.EntityFrameworkCore.Metadata.Internal.IRuntimeModel IReadOnlyModel

注解

这是一个轻量级实现,它基于生成的模型进行构造,不应在设计时使用。

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

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

构造函数

RuntimeModel()

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

属性

DebugView

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

IsReadOnly

指示当前对象是否为只读对象。

(继承自 AnnotatableBase)
Item[String]

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

(继承自 AnnotatableBase)
ModelId

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

方法

AddAnnotation(String, Annotation)

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

(继承自 AnnotatableBase)
AddAnnotation(String, Object)

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

(继承自 AnnotatableBase)
AddAnnotations(IEnumerable<IAnnotation>)

向此对象添加批注。

(继承自 AnnotatableBase)
AddAnnotations(IReadOnlyDictionary<String,Object>)

向此对象添加批注。

(继承自 AnnotatableBase)
AddEntityType(String, Type, RuntimeEntityType, Boolean, String, ChangeTrackingStrategy, PropertyInfo, Boolean)

将具有定义导航的实体类型添加到模型。

AddEntityType(String, Type, RuntimeEntityType, Boolean, String, ChangeTrackingStrategy, PropertyInfo, Boolean, Object)

将具有定义导航的实体类型添加到模型。

AddRuntimeAnnotation(String, Annotation)

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

(继承自 AnnotatableBase)
AddRuntimeAnnotation(String, Object)

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

(继承自 AnnotatableBase)
AddRuntimeAnnotations(IEnumerable<Annotation>)

向此对象添加运行时批注。

(继承自 AnnotatableBase)
AddRuntimeAnnotations(IReadOnlyDictionary<String,Object>)

向此对象添加运行时批注。

(继承自 AnnotatableBase)
AddTypeMappingConfiguration(Type, Nullable<Int32>, Nullable<Boolean>, Nullable<Int32>, Nullable<Int32>, Type, ValueConverter)

添加标量类型的配置。

CreateAnnotation(String, Object)

创建新批注。

(继承自 AnnotatableBase)
CreateRuntimeAnnotation(String, Object)

创建新的运行时批注。

(继承自 AnnotatableBase)
EnsureMutable()

如果模型为只读,则引发 。

(继承自 AnnotatableBase)
EnsureReadOnly()

如果模型不是只读的,则引发 。

(继承自 AnnotatableBase)
FindAdHocEntityType(Type)

获取具有给定名称的实体类型。 null如果未将具有给定名称的实体类型映射为即席类型,则返回 。

FindAnnotation(String)

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

(继承自 AnnotatableBase)
FindEntityType(String)

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

FindRuntimeAnnotation(String)

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

(继承自 AnnotatableBase)
GetAdHocEntityTypes()

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

GetAnnotation(String)

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

(继承自 AnnotatableBase)
GetAnnotations()

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

(继承自 AnnotatableBase)
GetOrAddAdHocEntityType(RuntimeEntityType)

向模型添加即席实体类型。

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

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

(继承自 AnnotatableBase)
GetRuntimeAnnotations()

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

(继承自 AnnotatableBase)
OnAnnotationSet(String, Annotation, Annotation)

在设置或删除批注时调用。

(继承自 AnnotatableBase)
RemoveAnnotation(String)

从此 对象中删除给定的批注。

(继承自 AnnotatableBase)
RemoveRuntimeAnnotation(String)

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

(继承自 AnnotatableBase)
SetAnnotation(String, Annotation, Annotation)

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

(继承自 AnnotatableBase)
SetAnnotation(String, Object)

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

(继承自 AnnotatableBase)
SetRuntimeAnnotation(String, Annotation, Annotation)

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

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

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

(继承自 AnnotatableBase)
SetSkipDetectChanges(Boolean)

设置一个值,该值指示是否 DetectChanges() 应调用。

显式接口实现

IAnnotatable.AddRuntimeAnnotation(String, Object)

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

(继承自 AnnotatableBase)
IAnnotatable.FindRuntimeAnnotation(String)

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

(继承自 AnnotatableBase)
IAnnotatable.GetRuntimeAnnotations()

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

(继承自 AnnotatableBase)
IAnnotatable.RemoveRuntimeAnnotation(String)

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

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

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

(继承自 AnnotatableBase)
IModel.FindEntityType(String)

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

IModel.FindEntityType(String, String, IEntityType)

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

IModel.FindEntityType(Type)

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

IModel.FindEntityTypes(Type)

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

IModel.FindTypeMappingConfiguration(Type)

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

IModel.GetEntityTypes()

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

IModel.GetTypeMappingConfigurations()

获取所有预约定配置。

IModel.IsIndexerMethod(MethodInfo)

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

IReadOnlyAnnotatable.FindAnnotation(String)

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

(继承自 AnnotatableBase)
IReadOnlyAnnotatable.GetAnnotations()

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

(继承自 AnnotatableBase)
IReadOnlyAnnotatable.Item[String]

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

(继承自 AnnotatableBase)
IReadOnlyModel.FindEntityType(String)

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

IReadOnlyModel.FindEntityType(String, String, IReadOnlyEntityType)

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

IReadOnlyModel.FindEntityType(Type)

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

IReadOnlyModel.FindEntityType(Type, String, IReadOnlyEntityType)

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

IReadOnlyModel.FindEntityTypes(Type)

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

IReadOnlyModel.GetChangeTrackingStrategy()

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

IReadOnlyModel.GetEntityTypes()

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

IReadOnlyModel.GetPropertyAccessMode()

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

IReadOnlyModel.IsShared(Type)

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

IReadOnlyModel.ModelId

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

IRuntimeModel.RelationalModel

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

IRuntimeModel.SkipDetectChanges

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

扩展方法

GetDefaultContainer(IModel)

返回默认容器名称。

GetDefaultContainer(IReadOnlyModel)

返回默认容器名称。

GetThroughput(IReadOnlyModel)

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

AnnotationsToDebugString(IAnnotatable, Int32)

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

GetRelationalDependencies(IModel, String)

返回关系服务依赖项。

FindEntityType(IModel, Type)
已过时。.

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

GetEntityTypes(IModel, String)
已过时。.

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

GetEntityTypes(IModel, Type)
已过时。.

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

GetProductVersion(IModel)

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

HasEntityTypeWithDefiningNavigation(IModel, String)
已过时。.

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

HasEntityTypeWithDefiningNavigation(IModel, Type)
已过时。.

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

IsIndexerMethod(IModel, MethodInfo)

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

IsShared(IModel, Type)

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

ToDebugString(IModel, MetadataDebugStringOptions, Int32)

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

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

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 调用。

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返回要用于模型中键的属性的 ,除非 属性具有显式设置的策略。

适用于