EntityTypeBuilder 类

定义

提供用于配置 的 IMutableEntityType简单 API。

public class EntityTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>
public class EntityTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>
public class EntityTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder>
type EntityTypeBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalEntityTypeBuilder>
type EntityTypeBuilder = class
    interface IInfrastructure<InternalEntityTypeBuilder>
type EntityTypeBuilder = class
    interface IInfrastructure<IConventionEntityTypeBuilder>
Public Class EntityTypeBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalEntityTypeBuilder)
Public Class EntityTypeBuilder
Implements IInfrastructure(Of InternalEntityTypeBuilder)
Public Class EntityTypeBuilder
Implements IInfrastructure(Of IConventionEntityTypeBuilder)
继承
EntityTypeBuilder
派生
实现
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder> IInfrastructure<IConventionEntityTypeBuilder>

注解

此类的实例在使用 API 时从方法返回, ModelBuilder 并且它不是设计为在应用程序代码中直接构造的。

构造函数

EntityTypeBuilder(IMutableEntityType)

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

EntityTypeBuilder(InternalEntityTypeBuilder)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

属性

Builder

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

Metadata

要配置的实体类型。

方法

ComplexProperty(String)

返回一个 对象,该对象可用于配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty(String, Action<ComplexPropertyBuilder>)

配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty(Type, String)

配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty(Type, String, Action<ComplexPropertyBuilder>)

返回一个 对象,该对象可用于配置复杂类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty(Type, String, String)

配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty(Type, String, String, Action<ComplexPropertyBuilder>)

返回一个 对象,该对象可用于配置复杂类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty<TProperty>(String)

返回一个 对象,该对象可用于配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty<TProperty>(String, Action<ComplexPropertyBuilder<TProperty>>)

配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty<TProperty>(String, String)

返回一个 对象,该对象可用于配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

ComplexProperty<TProperty>(String, String, Action<ComplexPropertyBuilder<TProperty>>)

配置实体类型的复杂属性。 如果不存在具有给定名称的属性,则将添加新属性。

FindRelatedEntityType(String, String)

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

FindRelatedEntityType(Type, String)

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

HasAlternateKey(String[])

如果指定属性上尚不存在此实体类型的备用键,则在此模型中创建一个备用键。 这将强制属性为只读。 用于 HasIndex 指定模型中不强制属性为只读的唯一性。

HasAnnotation(String, Object)

在实体类型上添加或更新批注。 如果具有 中指定的 annotation 键的批注已存在,则其值将更新。

HasBaseType(String)

设置继承层次结构中此实体类型的基类型。

HasBaseType(Type)

设置继承层次结构中此实体类型的基类型。

HasChangeTrackingStrategy(ChangeTrackingStrategy)

配置 ChangeTrackingStrategy 要用于此实体类型的 。 此策略指示上下文如何检测实体类型实例的属性更改。

HasChangeTrackingStrategy(ChangeTrackingStrategy)

配置 ChangeTrackingStrategy 要用于此实体类型的 。 此策略指示上下文如何检测实体类型实例的属性更改。

HasData(IEnumerable<Object>)

将此实体配置为具有种子数据。 它用于生成数据运动迁移。

HasData(Object[])

将此实体配置为具有种子数据。 它用于生成数据运动迁移。

HasDiscriminator()

配置用于标识存储区中的实体类型的鉴别器属性。

HasDiscriminator(String, Type)

配置用于标识存储区中的实体类型的鉴别器属性。

HasDiscriminator<TDiscriminator>(String)

配置用于标识存储区中的实体类型的鉴别器属性。

HasIndex(String[])

在指定属性上配置未命名索引。 如果给定属性列表中存在现有的未命名索引,则将返回现有索引进行配置。

HasIndex(String[], String)

在指定属性上配置具有给定名称的索引。 如果给定的属性列表上有一个具有给定名称的现有索引,则将返回现有索引进行配置。

HasKey(String[])

设置构成此实体类型的主键的属性。

HasMany(String)

配置一个关系,其中此实体类型具有包含关系中其他类型的实例的集合。

HasMany(String, String)

配置一个关系,其中此实体类型具有包含关系中其他类型的实例的集合。

HasMany(Type, String)

配置一个关系,其中此实体类型具有包含关系中其他类型的实例的集合。

HasManyBuilder(EntityType, PropertyInfo)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

HasManyBuilder(EntityType, String)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

HasNoDiscriminator()

将实体类型配置为没有鉴别器属性。

HasNoKey()

将实体类型配置为没有键。 它仅可用于查询。

HasOne(String)

配置一个关系,其中此实体类型具有指向关系中另一类型的单个实例的引用。

HasOne(String, String)

配置一个关系,其中此实体类型具有指向关系中另一类型的单个实例的引用。

HasOne(Type, String)

配置一个关系,其中此实体类型具有指向关系中另一类型的单个实例的引用。

HasOneBuilder(EntityType, PropertyInfo)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

HasOneBuilder(EntityType, String)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

HasOneBuilder(MemberIdentity, EntityType)

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

HasQueryFilter(LambdaExpression)

指定 LINQ 谓词表达式,该表达式将自动应用于面向此实体类型的任何查询。

HasTrigger(IMutableEntityType, String)

为实体类型配置触发器。

Ignore(String)

从实体类型中排除给定属性。 此方法通常用于从按约定添加的实体类型中删除属性和导航。

IndexerProperty(Type, String)

返回一个对象,该对象可用于配置实体类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

IndexerProperty<TProperty>(String)

返回一个对象,该对象可用于配置实体类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

Navigation(String)

返回一个 对象,该对象可用于配置实体类型的现有导航属性。 导航属性不存在是一个错误。

New(InternalEntityTypeBuilder)

此 API 支持 Entity Framework Core 基础结构,不应直接从代码使用。 将来的版本中可能会更改或删除此 API。

OwnsMany(String, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

配置一个关系,其中此实体类型向关系中的另一类型提供标识。

OwnsMany(String, String, Action<OwnedNavigationBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsMany(String, Type, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsMany(String, Type, String, Action<OwnedNavigationBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsMany(Type, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

配置一个关系,其中此实体类型向关系中的另一类型提供标识。

OwnsMany(Type, String, Action<OwnedNavigationBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(String, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(String, String, Action<OwnedNavigationBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

每个所有权关系的目标实体类型被视为不同的实体类型,即使导航的类型相同。 目标实体类型的配置不会应用于其他所有权关系的目标实体类型。

对拥有实体的大多数操作需要使用相应的导航通过所有者实体访问它。

OwnsOne(String, Type, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(String, Type, String, Action<OwnedNavigationBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(Type, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(Type, String, Action<OwnedNavigationBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。

每个所有权关系的目标实体类型被视为不同的实体类型,即使导航的类型相同。 目标实体类型的配置不会应用于其他所有权关系的目标实体类型。

对拥有实体的大多数操作需要使用相应的导航通过所有者实体访问它。

PrimitiveCollection(String)

返回一个 对象,该对象可用于配置实体类型的属性,其中该属性表示基元值(如字符串或整数)的集合。 如果不存在具有给定名称的属性,则将添加新属性。

PrimitiveCollection(Type, String)

返回一个 对象,该对象可用于配置实体类型的属性,其中该属性表示基元值(如字符串或整数)的集合。 如果不存在具有给定名称的属性,则将添加新属性。

PrimitiveCollection<TProperty>(String)

返回一个 对象,该对象可用于配置实体类型的属性,其中该属性表示基元值(如字符串或整数)的集合。 如果不存在具有给定名称的属性,则将添加新属性。

Property(String)

返回一个对象,该对象可用于配置实体类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

Property(Type, String)

返回一个对象,该对象可用于配置实体类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

Property<TProperty>(String)

返回一个对象,该对象可用于配置实体类型的属性。 如果不存在具有给定名称的属性,则将添加新属性。

UsePropertyAccessMode(PropertyAccessMode)

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

默认情况下,在构造新对象时(通常是从数据库查询实体时),将使用后备字段(如果按约定找到或已指定)。 属性用于所有其他访问。 调用此方法会更改此实体类型的所有属性的行为,如枚举中所述 PropertyAccessMode

对于此实体类型的所有属性,调用此方法会覆盖在模型上设置的任何访问模式。

UsePropertyAccessMode(PropertyAccessMode)

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

显式接口实现

IInfrastructure<IConventionEntityTypeBuilder>.Instance

获取用于配置实体类型的内部生成器。

IInfrastructure<IMutableModel>.Instance

实体类型所属的模型。

IInfrastructure<InternalEntityTypeBuilder>.Instance

获取用于配置实体类型的内部生成器。

扩展方法

HasAnalyticalStoreTimeToLive(EntityTypeBuilder, Nullable<Int32>)

在容器范围内配置分析存储的生存时间(以秒为单位)。

HasAutoscaleThroughput(EntityTypeBuilder, Nullable<Int32>)

配置自动缩放预配的吞吐量产品/服务。

HasDefaultTimeToLive(EntityTypeBuilder, Nullable<Int32>)

在容器范围内配置默认生存时间(以秒为单位)。

HasManualThroughput(EntityTypeBuilder, Nullable<Int32>)

配置手动预配的吞吐量产品/服务。

HasPartitionKey(EntityTypeBuilder, String)

配置用于存储分区键的属性。

ToContainer(EntityTypeBuilder, String)

配置实体类型在面向 Azure Cosmos 时映射到的容器。

UseETagConcurrency(EntityTypeBuilder)

将此实体配置为使用 CosmosDb etag 并发检查。

GetInfrastructure<T>(IInfrastructure<T>)

从使用 IInfrastructure<T>隐藏的属性中获取值。

此方法通常由数据库提供程序 (和其他扩展) 使用。 它通常不在应用程序代码中使用。

ToInMemoryQuery(EntityTypeBuilder, LambdaExpression)

配置用于为实体类型提供数据的查询。

DeleteUsingStoredProcedure(EntityTypeBuilder, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于删除的存储过程。

DeleteUsingStoredProcedure(EntityTypeBuilder, String, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于删除的存储过程。

DeleteUsingStoredProcedure(EntityTypeBuilder, String, String, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于删除的存储过程。

HasCheckConstraint(EntityTypeBuilder, String, String)
已过时。

在面向关系数据库时配置数据库检查约束。

HasCheckConstraint(EntityTypeBuilder, String, String, Action<CheckConstraintBuilder>)
已过时。

在面向关系数据库时配置数据库检查约束。

HasComment(EntityTypeBuilder, String)
已过时。

配置要应用于表的注释

HasDiscriminator(EntityTypeBuilder)

配置鉴别器列,用于标识将继承层次结构映射到关系数据库中的单个表时表中每行所表示的实体类型。

HasDiscriminator(EntityTypeBuilder, String, Type)

配置鉴别器列,用于标识将继承层次结构映射到关系数据库中的单个表时表中每行所表示的实体类型。

HasDiscriminator<TDiscriminator>(EntityTypeBuilder, String)

配置鉴别器列,用于标识将继承层次结构映射到关系数据库中的单个表时表中每行所表示的实体类型。

InsertUsingStoredProcedure(EntityTypeBuilder, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于插入的存储过程。

InsertUsingStoredProcedure(EntityTypeBuilder, String, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于插入的存储过程。

InsertUsingStoredProcedure(EntityTypeBuilder, String, String, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于插入的存储过程。

SplitToTable(EntityTypeBuilder, String, Action<SplitTableBuilder>)

将此实体类型上的某些属性配置为映射到其他表。 主键属性映射到所有表,其他属性必须显式映射。

SplitToTable(EntityTypeBuilder, String, String, Action<SplitTableBuilder>)

将此实体类型上的某些属性配置为映射到其他表。 主键属性映射到所有表,其他属性必须显式映射。

SplitToView(EntityTypeBuilder, String, Action<SplitViewBuilder>)

将此实体类型上的某些属性配置为映射到其他视图。 主键属性映射到所有视图,其他属性必须显式映射。

SplitToView(EntityTypeBuilder, String, String, Action<SplitViewBuilder>)

将此实体类型上的某些属性配置为映射到其他视图。 主键属性映射到所有视图,其他属性必须显式映射。

ToFunction(EntityTypeBuilder, MethodInfo)

配置实体类型在面向关系数据库时映射到的函数。

ToFunction(EntityTypeBuilder, MethodInfo, Action<TableValuedFunctionBuilder>)

配置实体类型在面向关系数据库时映射到的函数。

ToFunction(EntityTypeBuilder, String)

配置实体类型在面向关系数据库时映射到的函数。

ToFunction(EntityTypeBuilder, String, Action<TableValuedFunctionBuilder>)

配置实体类型在面向关系数据库时映射到的函数。

ToSqlQuery(EntityTypeBuilder, String)

配置用于为实体类型提供数据的 SQL 字符串。

ToTable(EntityTypeBuilder, Action<TableBuilder>)

配置实体类型在面向关系数据库时映射到的表。

ToTable(EntityTypeBuilder, String)

配置实体类型在面向关系数据库时映射到的表。

ToTable(EntityTypeBuilder, String, Action<TableBuilder>)

配置实体类型在面向关系数据库时映射到的表。

ToTable(EntityTypeBuilder, String, String)

配置实体类型在面向关系数据库时映射到的表。

ToTable(EntityTypeBuilder, String, String, Action<TableBuilder>)

配置实体类型在面向关系数据库时映射到的表。

ToView(EntityTypeBuilder, String)

配置实体类型在面向关系数据库时映射到的视图。

ToView(EntityTypeBuilder, String, Action<ViewBuilder>)

配置实体类型在面向关系数据库时映射到的视图。

ToView(EntityTypeBuilder, String, String)

配置实体类型在面向关系数据库时映射到的视图。

ToView(EntityTypeBuilder, String, String, Action<ViewBuilder>)

配置实体类型在面向关系数据库时映射到的视图。

UpdateUsingStoredProcedure(EntityTypeBuilder, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于更新的存储过程。

UpdateUsingStoredProcedure(EntityTypeBuilder, String, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于更新的存储过程。

UpdateUsingStoredProcedure(EntityTypeBuilder, String, String, Action<StoredProcedureBuilder>)

配置实体类型在面向关系数据库时用于更新的存储过程。

UseTpcMappingStrategy(EntityTypeBuilder)

将 TPC 配置为派生类型的映射策略。 每种类型都将映射到不同的数据库对象。 所有属性都将映射到相应对象上的列。

UseTphMappingStrategy(EntityTypeBuilder)

将 TPH 配置为派生类型的映射策略。 所有类型都将映射到同一数据库对象。 这是默认映射策略。

UseTptMappingStrategy(EntityTypeBuilder)

将 TPT 配置为派生类型的映射策略。 每种类型都将映射到不同的数据库对象。 只有声明的属性才会映射到相应对象上的列。

ForSqliteToTable(EntityTypeBuilder, String)

配置以 SQLite 为目标时实体映射到的表。

ForSqlServerIsMemoryOptimized(EntityTypeBuilder, Boolean)
已过时。

将SQL Server定位为内存优化时,配置实体映射到的表。

ForSqlServerToTable(EntityTypeBuilder, String)

配置以SQL Server为目标时实体映射到的表。

ForSqlServerToTable(EntityTypeBuilder, String, String)

配置以SQL Server为目标时实体映射到的表。

IsMemoryOptimized(EntityTypeBuilder, Boolean)
已过时。

将SQL Server定位为内存优化时,配置实体映射到的表。

适用于