CollectionOwnershipBuilder 类

定义

提供用于配置一对多所有权的简单 API。

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

构造函数

CollectionOwnershipBuilder(EntityType, EntityType, InternalRelationshipBuilder)

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

CollectionOwnershipBuilder(InternalRelationshipBuilder, CollectionOwnershipBuilder, Boolean, Boolean, Boolean)

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

属性

Builder

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

(继承自 ReferenceCollectionBuilderBase)
DependentEntityType

获取用于配置此关系的依赖实体类型。

(继承自 ReferenceCollectionBuilderBase)
Metadata

表示此关系的外键。

(继承自 ReferenceCollectionBuilderBase)
OwnedEntityType

要配置的自有实体类型。

PrincipalEntityType

获取用于配置此关系的主体实体类型。

(继承自 ReferenceCollectionBuilderBase)

方法

FindRelatedEntityType(String, String)

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

FindRelatedEntityType(Type, String)

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

HasChangeTrackingStrategy(ChangeTrackingStrategy)

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

HasData(Object[])

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

HasEntityTypeAnnotation(String, Object)

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

HasForeignKey(String[])

配置属性 () 用作此关系的外键。

如果实体类型上不存在指定的属性名称 () ,则将添加 () 的新阴影状态属性作为外键。 阴影状态属性是实体类中没有相应属性的属性。 属性的当前值存储在 中, ChangeTracker 而不是存储在实体类的实例中。

如果未 HasPrincipalKey(String[]) 指定 ,则将尝试将外键属性的数据类型和顺序与主体实体类型的主键匹配。 如果它们不匹配,则形成唯一索引的新阴影状态属性将添加到主体实体类型以用作引用键。

HasForeignKeyAnnotation(String, Object)

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

HasIndex(String[])

在指定属性上配置索引。 如果给定的属性集上存在现有索引,则将返回现有索引进行配置。

HasKey(String[])

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

HasOne(String, String)

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

请注意,在没有参数的情况下调用此方法会将关系的这一端显式配置为不使用导航属性,即使实体类型上存在此类属性也是如此。 如果要使用导航属性,则必须指定它。

调用此方法后,应链接对 或 WithOne(String)WithMany(String)调用以完全配置关系。 如果只调用此方法而不调用链接,则不会产生有效的关系。

HasOne(Type, String)

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

请注意,在没有参数的情况下调用此方法会将关系的这一端显式配置为不使用导航属性,即使实体类型上存在此类属性也是如此。 如果要使用导航属性,则必须指定它。

调用此方法后,应链接对 或 WithOne(String)WithMany(String)调用以完全配置关系。 如果只调用此方法而不调用链接,则不会产生有效的关系。

HasPrincipalKey(String[])

配置此关系目标 () 的唯一属性。 通常,仅当想要使用主键以外的属性 () 作为主体属性 () 时,才调用此方法。 如果指定的属性 () 不是唯一约束 (或主键) 将引入新的唯一约束。

Ignore(String)

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

OnDelete(DeleteBehavior)

配置删除主体或断开关系时如何对关系中的依赖实体应用删除操作。

OwnsMany(String, String)

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

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

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

OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

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

OwnsMany(Type, String)

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

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

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

OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

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

OwnsOne(String, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。 目标实体键值始终从它所属的实体传播。

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

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

OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。 目标实体键值始终从它所属的实体传播。

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

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

OwnsOne(Type, String)

配置目标实体由 (或) 此实体的一部分拥有的关系。 目标实体键值始终从它所属的实体传播。

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

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

OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

配置目标实体由 (或) 此实体的一部分拥有的关系。 目标实体键值始终从它所属的实体传播。

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

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

Property(String)

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

使用此重载添加新属性时,属性名称必须与实体类型上的 CLR 属性或字段的名称匹配。 此重载不能用于添加新的阴影状态属性。

Property(Type, String)

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

添加新属性时,如果实体类中存在同名的属性,则该属性将添加到模型中。 如果实体类中不存在任何属性,则将添加新的阴影状态属性。 阴影状态属性是实体类中没有相应属性的属性。 属性的当前值存储在 中, ChangeTracker 而不是存储在实体类的实例中。

Property<TProperty>(String)

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

添加新属性时,如果实体类中存在同名的属性,则该属性将添加到模型中。 如果实体类中不存在任何属性,则将添加新的阴影状态属性。 阴影状态属性是实体类中没有相应属性的属性。 属性的当前值存储在 中, ChangeTracker 而不是存储在实体类的实例中。

UsePropertyAccessMode(PropertyAccessMode)

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

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

调用此方法将替代此实体类型的所有属性,即在模型上设置的任何访问模式。

显式接口实现

IInfrastructure<IMutableModel>.Instance

此关系所属的模型。

(继承自 ReferenceCollectionBuilderBase)
IInfrastructure<InternalEntityTypeBuilder>.Instance

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

IInfrastructure<InternalRelationshipBuilder>.Instance

获取用于配置此关系的内部生成器。

(继承自 ReferenceCollectionBuilderBase)

扩展方法

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasConstraintName(CollectionOwnershipBuilder, String)

在面向关系数据库时为此关系配置外键约束名称。

ToTable(CollectionOwnershipBuilder, String)

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

ToTable(CollectionOwnershipBuilder, String, String)

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

ForSqlServerIsMemoryOptimized(CollectionOwnershipBuilder, Boolean)

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

适用于