语言

ReferenceOwnershipBuilder 类

定义

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

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

构造函数

名称 说明
ReferenceOwnershipBuilder(EntityType, EntityType, InternalRelationshipBuilder)

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

ReferenceOwnershipBuilder(InternalRelationshipBuilder, ReferenceOwnershipBuilder, Boolean, Boolean, Boolean, Boolean)

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

属性

名称 说明
Builder

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

(继承自 ReferenceReferenceBuilderBase)
DeclaringEntityType

获取用于配置此关系的第一个实体类型。

(继承自 ReferenceReferenceBuilderBase)
Metadata

表示此关系的外键。

(继承自 ReferenceReferenceBuilderBase)
OwnedEntityType

正在配置的自有实体类型。

RelatedEntityType

获取用于配置此关系的第二个实体类型。

(继承自 ReferenceReferenceBuilderBase)

方法

名称 说明
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[])

将属性配置为用作此关系的外键。

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

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

HasForeignKeyAnnotation(String, Object)

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

HasIndex(String[])

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

HasKey(String[])

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

HasMany(String, String)

配置此实体类型包含关系中其他类型的实例的集合的关系。

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

调用此方法后,应链接调用以 WithOne(String) 完全配置关系。 仅调用不带链接调用的此方法不会产生有效的关系。

HasMany(Type, String)

配置此实体类型包含关系中其他类型的实例的集合的关系。

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

调用此方法后,应链接调用以 WithOne(String) 完全配置关系。 仅调用不带链接调用的此方法不会产生有效的关系。

HasOne(String, String)

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

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

调用此方法后,应链接调用 WithMany(String) 或 WithOne(String) 完全配置关系。 仅调用不带链接调用的此方法不会产生有效的关系。

HasOne(Type, String)

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

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

调用此方法后,应链接调用 WithMany(String) 或 WithOne(String) 完全配置关系。 仅调用不带链接调用的此方法不会产生有效的关系。

HasPrincipalKey(String[])

配置此关系面向的唯一属性(即所有者实体类型)。 通常,如果想要将主键以外的属性用作主体属性(s),则仅调用此方法。 如果指定的属性(s)不是唯一约束(或主键),则将引入新的唯一约束。

Ignore(String)

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

OnDelete(DeleteBehavior)

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

OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

配置此实体类型向关系中的其他类型提供标识的关系。

OwnsMany(String, String)

配置一个关系,其中目标实体由此实体(或部分)拥有。

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

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

OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

配置此实体类型向关系中的其他类型提供标识的关系。

OwnsMany(Type, String)

配置一个关系,其中目标实体由此实体(或部分)拥有。

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

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

OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

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

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

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

OwnsOne(String, String)

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

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

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

OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

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

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

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

OwnsOne(Type, String)

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

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

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

Property(String)

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

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

Property(Type, String)

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

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

Property<TProperty>(String)

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

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

UsePropertyAccessMode(PropertyAccessMode)

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

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

调用此方法将覆盖此实体类型的所有属性,这些属性是针对模型上设置的任何访问模式。

显式接口实现

名称 说明
IInfrastructure<IMutableModel>.Instance

此关系所属的模型。

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

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

IInfrastructure<InternalRelationshipBuilder>.Instance

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

(继承自 ReferenceReferenceBuilderBase)

扩展方法

名称 说明
ForSqlServerIsMemoryOptimized(ReferenceOwnershipBuilder, Boolean)

配置实体在将SQL Server作为内存优化目标时映射到的表。

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasConstraintName(ReferenceOwnershipBuilder, String)

针对关系数据库时配置此关系的外键约束名称。

ToTable(ReferenceOwnershipBuilder, String, String)

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

ToTable(ReferenceOwnershipBuilder, String)

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

适用于