IMutableModel 接口

定义

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

public interface IMutableModel : Microsoft.EntityFrameworkCore.Metadata.IModel, Microsoft.EntityFrameworkCore.Metadata.IMutableAnnotatable
public interface IMutableModel : Microsoft.EntityFrameworkCore.Metadata.IMutableAnnotatable, Microsoft.EntityFrameworkCore.Metadata.IReadOnlyModel
type IMutableModel = interface
    interface IModel
    interface IAnnotatable
    interface IMutableAnnotatable
type IMutableModel = interface
    interface IReadOnlyModel
    interface IReadOnlyAnnotatable
    interface IMutableAnnotatable
Public Interface IMutableModel
Implements IModel, IMutableAnnotatable
Public Interface IMutableModel
Implements IMutableAnnotatable, IReadOnlyModel
实现

注解

此接口在模型创建期间使用,并允许修改元数据。 生成模型后, IModel 表示相同元数据的只读视图。

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

属性

Item[String]

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

(继承自 IReadOnlyAnnotatable)
ModelDependencies

运行时服务依赖项。

(继承自 IModel)
ModelId

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

(继承自 IReadOnlyModel)

方法

AddAnnotation(String, Object)

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

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

向 对象添加批注。

(继承自 IMutableAnnotatable)
AddEntityType(String)

将默认类型的实体类型添加到模型。

AddEntityType(String, String, IMutableEntityType)

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

AddEntityType(String, Type)

将共享类型实体类型添加到模型。

AddEntityType(Type)

将实体类型添加到模型。

AddEntityType(Type, String, IMutableEntityType)

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

AddIgnored(String)

将给定的实体类型名称标记为忽略,从而阻止约定向模型添加匹配的实体类型。

AddIgnored(Type)

将给定的实体类型标记为已忽略,从而阻止约定将匹配的实体类型添加到模型。

AddOwned(Type)

将给定的实体类型标记为“拥有”,指示在发现匹配的实体类型时应配置为“拥有”。

AddOwnedEntityType(String)

将默认类型的自有实体类型添加到模型。

AddOwnedEntityType(String, Type)

将拥有的共享类型实体类型添加到模型。

AddOwnedEntityType(Type)

将拥有的实体类型添加到模型。

AddQueryType(Type)

将查询类型添加到模型。

AddRuntimeAnnotation(String, Object)

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

(继承自 IAnnotatable)
AddShared(Type)

将给定实体类型标记为共享,指示在发现匹配实体类型时应配置为共享类型实体类型。

AnnotationsToDebugString(Int32)

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

(继承自 IReadOnlyAnnotatable)
DelayConventions()

防止在修改元数据方面时立即执行约定。 释放返回的对象后,将执行所有延迟的约定。

FinalizeModel()

强制对模型进行后处理,使其可供运行时使用。 使用 OnModelCreating(ModelBuilder)时,这种后处理会自动发生;此方法允许在无法自动执行的情况下显式运行。

FindAnnotation(String)

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

(继承自 IReadOnlyAnnotatable)
FindEntityType(String)

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

FindEntityType(String, String, IEntityType)

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

(继承自 IModel)
FindEntityType(String, String, IMutableEntityType)

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

FindEntityType(String, String, IReadOnlyEntityType)

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

(继承自 IReadOnlyModel)
FindEntityType(Type)

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

FindEntityType(Type, String, IEntityType)

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

(继承自 IModel)
FindEntityType(Type, String, IMutableEntityType)

获取给定名称的实体类型,定义导航名称和定义实体类型。 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 类型,或者实体类型具有定义导航,则返回 。

(继承自 IModel)
FindTypeMappingConfiguration(Type)

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

(继承自 IModel)
GetAnnotation(String)

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

(继承自 IReadOnlyAnnotatable)
GetAnnotations()

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

(继承自 IReadOnlyAnnotatable)
GetChangeTrackingStrategy()

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

(继承自 IReadOnlyModel)
GetEntityTypes()

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

GetModelDependencies()

获取运行时服务依赖项。

(继承自 IModel)
GetOrAddRuntimeAnnotationValue<TValue,TArg>(String, Func<TArg,TValue>, TArg)

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

(继承自 IAnnotatable)
GetProductVersion()

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

(继承自 IReadOnlyModel)
GetPropertyAccessMode()

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

(继承自 IReadOnlyModel)
GetRuntimeAnnotations()

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

(继承自 IAnnotatable)
GetTypeMappingConfigurations()

获取所有预约定配置。

(继承自 IModel)
IsIgnored(String)

指示是否忽略给定的实体类型名称。

IsIgnored(Type)

指示是否忽略给定的实体类型名称。

IsIndexerMethod(MethodInfo)

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

(继承自 IModel)
IsOwned(Type)

返回一个值,该值指示在约定发现时,是否应将使用给定类型的实体类型配置为拥有的类型。

IsShared(Type)

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

(继承自 IReadOnlyModel)
RemoveAnnotation(String)

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

(继承自 IMutableAnnotatable)
RemoveEntityType(IMutableEntityType)

从模型中删除实体类型。

RemoveEntityType(String)

从模型中删除没有定义导航的实体类型。

RemoveEntityType(String, String, IMutableEntityType)

删除具有给定类型的实体类型,定义导航名称和定义实体类型

RemoveEntityType(Type)

从模型中删除实体类型。

RemoveEntityType(Type, String, IMutableEntityType)

删除具有给定类型的实体类型,定义导航名称和定义实体类型

RemoveIgnored(String)

删除忽略的实体类型名称。

RemoveIgnored(Type)

删除忽略的实体类型。

RemoveOwned(Type)

删除给定的自有类型,指示在发现匹配实体类型时不应配置为拥有的实体类型。

RemoveRuntimeAnnotation(String)

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

(继承自 IAnnotatable)
RemoveShared(Type)

将给定类型标记为不共享,指示在发现匹配实体类型时不应配置为共享类型实体类型。

SetAnnotation(String, Object)

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

(继承自 IMutableAnnotatable)
SetChangeTrackingStrategy(Nullable<ChangeTrackingStrategy>)

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

SetOrRemoveAnnotation(String, Object)

设置存储在给定名称下的批注。 如果具有指定名称的批注已存在,则覆盖现有批注。 如果 null 提供了 ,则删除现有批注。

(继承自 IMutableAnnotatable)
SetPropertyAccessMode(Nullable<PropertyAccessMode>)

PropertyAccessMode设置要用于此模型中所有实体类型的属性的 。

SetRuntimeAnnotation(String, Object)

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

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

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

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

(继承自 IReadOnlyModel)

扩展方法

GetDefaultContainer(IModel)

返回默认容器名称。

GetDefaultContainer(IReadOnlyModel)

返回默认容器名称。

GetThroughput(IReadOnlyModel)

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

SetDefaultContainer(IMutableModel, String)

设置默认容器名称。

SetThroughput(IMutableModel, Nullable<Int32>, Nullable<Boolean>)

在数据库范围内设置预配的吞吐量。

AnnotationsToDebugString(IAnnotatable, Int32)

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

GetAnnotation(IAnnotatable, 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)

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

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

AddAnnotations(IMutableAnnotatable, IEnumerable<IAnnotation>)

向 对象添加批注。

GetAnnotation(IMutableAnnotatable, String)

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

GetOrAddAnnotation(IMutableAnnotatable, String, String)

获取具有给定键的现有批注,或者添加新批注(如果不存在)。

SetOrRemoveAnnotation(IMutableAnnotatable, String, Object)

设置存储在给定名称下的批注。 如果具有指定名称的注释已存在,则覆盖现有批注。 如果 null 提供,则删除现有批注。

AddIgnored(IMutableModel, Type)

将给定的实体类型标记为忽略,从而阻止约定向模型添加匹配的实体类型。

AddOwned(IMutableModel, Type)

将给定的实体类型标记为“拥有”,指示在发现匹配的实体类型时应配置为“拥有”。

AddShared(IMutableModel, Type)

将给定的实体类型标记为共享,指示在发现匹配的实体类型时应配置为共享类型实体类型。

FinalizeModel(IMutableModel)

强制对模型进行后期处理,使其可供运行时使用。 使用 OnModelCreating(ModelBuilder)时,此后处理会自动发生;此方法允许在无法自动执行的情况下显式运行它。

FindEntityType(IMutableModel, Type)

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

FindEntityType(IMutableModel, Type, String, IMutableEntityType)

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

FindLeastDerivedEntityTypes(IMutableModel, Type, Func<IMutableEntityType,Boolean>)

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

GetEntityTypes(IMutableModel, String)
已过时。.

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

GetEntityTypes(IMutableModel, Type)
已过时。.

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

GetOrAddEntityType(IMutableModel, String)

获取具有给定名称的实体类型,如果未找到任何实体类型,则添加新的实体类型。

GetOrAddEntityType(IMutableModel, Type)

获取具有给定 CLR 类的实体类型,如果未找到任何实体类型,则添加新的实体类型。

IsIgnored(IMutableModel, Type)

指示是否忽略给定的实体类型名称。

IsOwned(IMutableModel, Type)

返回一个值,该值指示在约定发现时,是否应将使用给定类型的实体类型配置为拥有的类型。

RemoveEntityType(IMutableModel, IMutableEntityType)

从模型中删除实体类型。

RemoveEntityType(IMutableModel, String)

删除实体类型,而无需从模型中定义导航。

RemoveEntityType(IMutableModel, String, String, IMutableEntityType)

从模型中删除具有定义导航的实体类型。

RemoveEntityType(IMutableModel, Type)

从模型中删除实体类型。

RemoveEntityType(IMutableModel, Type, String, IMutableEntityType)

从模型中删除具有定义导航的实体类型。

RemoveIgnored(IMutableModel, Type)

删除忽略的实体类型。

RemoveOwned(IMutableModel, Type)

删除给定的自有类型,指示在发现匹配的实体类型时不应配置为拥有的实体类型。

SetChangeTrackingStrategy(IMutableModel, ChangeTrackingStrategy)

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

SetChangeTrackingStrategy(IMutableModel, Nullable<ChangeTrackingStrategy>)

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

SetPropertyAccessMode(IMutableModel, Nullable<PropertyAccessMode>)

PropertyAccessMode设置要用于此模型中所有实体类型的属性的 。

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

SetPropertyAccessMode(IMutableModel, Nullable<PropertyAccessMode>)

PropertyAccessMode设置要用于此模型中所有实体类型的属性的 。

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

Relational(IModel)

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

Relational(IMutableModel)

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

AddDbFunction(IMutableModel, MethodInfo)

IMutableDbFunction创建映射到给定方法的 。

AddDbFunction(IMutableModel, String, Type)

创建函数。

AddSequence(IMutableModel, String, String)

返回给定架构中具有给定名称的现有 IMutableSequence ,或者创建具有给定名称和架构的新序列。

FindDbFunction(IModel, MethodInfo)

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

FindDbFunction(IModel, String)

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

FindDbFunction(IMutableModel, MethodInfo)

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

FindDbFunction(IMutableModel, String)

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

FindDbFunction(IReadOnlyModel, MethodInfo)

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

FindDbFunction(IReadOnlyModel, String)

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

FindSequence(IModel, String, String)

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

FindSequence(IMutableModel, String, String)

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

FindSequence(IReadOnlyModel, String, String)

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

GetCollation(IModel)

返回数据库排序规则。

GetCollation(IReadOnlyModel)

返回数据库排序规则。

GetDbFunctions(IModel)

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

GetDbFunctions(IMutableModel)

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

GetDbFunctions(IReadOnlyModel)

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

GetDefaultSchema(IModel)

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

GetDefaultSchema(IReadOnlyModel)

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

GetMaxIdentifierLength(IModel)

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

GetMaxIdentifierLength(IReadOnlyModel)

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

GetRelationalModel(IModel)

返回数据库模型。

GetSequences(IModel)

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

GetSequences(IMutableModel)

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

GetSequences(IReadOnlyModel)

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

RemoveDbFunction(IMutableModel, MethodInfo)

删除映射到给定 MethodInfo表示的方法的函数。

RemoveDbFunction(IMutableModel, String)

删除映射到给定 MethodInfo表示的方法的函数。

RemoveSequence(IMutableModel, String, String)

IMutableSequence删除具有给定名称的 。

SetCollation(IMutableModel, String)

设置数据库排序规则。

SetDefaultSchema(IMutableModel, String)

设置默认架构。

SetMaxIdentifierLength(IMutableModel, Nullable<Int32>)

设置存储标识符允许的最大长度。

Sqlite(IModel)

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

Sqlite(IMutableModel)

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

SqlServer(IModel)

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

SqlServer(IMutableModel)

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

SetDatabaseMaxSize(IMutableModel, String)

设置数据库的最大大小。

SetHiLoSequenceName(IMutableModel, String)

设置要用于默认 hi-lo 序列的名称。

SetHiLoSequenceSchema(IMutableModel, String)

设置要用于默认 hi-lo 序列的架构。

SetIdentityIncrement(IMutableModel, Nullable<Int32>)

设置默认标识增量。

SetIdentitySeed(IMutableModel, Nullable<Int32>)

设置默认标识种子。

SetIdentitySeed(IMutableModel, Nullable<Int64>)

设置默认标识种子。

SetPerformanceLevelSql(IMutableModel, String)

设置数据库的性能级别。

SetSequenceNameSuffix(IMutableModel, String)

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

SetSequenceSchema(IMutableModel, String)

设置要用于默认键值生成序列的架构。

SetServiceTierSql(IMutableModel, String)

设置数据库的服务层。

SetValueGenerationStrategy(IMutableModel, Nullable<SqlServerValueGenerationStrategy>)

SqlServerValueGenerationStrategy设置 要用于模型中未显式设置策略的键属性的 。

适用于