ReferenceOwnershipBuilder<TEntity,TRelatedEntity> 类

定义

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

public class ReferenceOwnershipBuilder<TEntity,TRelatedEntity> : Microsoft.EntityFrameworkCore.Metadata.Builders.ReferenceOwnershipBuilder where TEntity : class where TRelatedEntity : class
type ReferenceOwnershipBuilder<'Entity, 'RelatedEntity (requires 'Entity : null and 'RelatedEntity : null)> = class
    inherit ReferenceOwnershipBuilder
Public Class ReferenceOwnershipBuilder(Of TEntity, TRelatedEntity)
Inherits ReferenceOwnershipBuilder

类型参数

TEntity
TRelatedEntity
继承
ReferenceOwnershipBuilder<TEntity,TRelatedEntity>

构造函数

ReferenceOwnershipBuilder<TEntity,TRelatedEntity>(EntityType, EntityType, InternalRelationshipBuilder)

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

ReferenceOwnershipBuilder<TEntity,TRelatedEntity>(InternalRelationshipBuilder, ReferenceOwnershipBuilder, Boolean, Boolean, Boolean, Boolean)

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

属性

Builder

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

(继承自 ReferenceReferenceBuilderBase)
DeclaringEntityType

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

(继承自 ReferenceReferenceBuilderBase)
Metadata

表示此关系的外键。

(继承自 ReferenceReferenceBuilderBase)
OwnedEntityType

要配置的自有实体类型。

(继承自 ReferenceOwnershipBuilder)
RelatedEntityType

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

(继承自 ReferenceReferenceBuilderBase)

方法

FindRelatedEntityType(String, String)

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

(继承自 ReferenceOwnershipBuilder)
FindRelatedEntityType(Type, String)

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

(继承自 ReferenceOwnershipBuilder)
HasChangeTrackingStrategy(ChangeTrackingStrategy)

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

HasData(Object[])

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

HasData(Object[])

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

(继承自 ReferenceOwnershipBuilder)
HasData(TRelatedEntity[])

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

HasEntityTypeAnnotation(String, Object)

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

HasForeignKey(Expression<Func<TRelatedEntity,Object>>)

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

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

如果未 HasPrincipalKey(Expression<Func<TEntity,Object>>) 指定 ,则将尝试将外键属性的数据类型和顺序与主体实体类型的主键进行匹配。 如果它们不匹配,则构成唯一索引的新阴影状态属性将添加到主体实体类型中,以用作引用键。

HasForeignKey(String[])

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

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

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

HasForeignKeyAnnotation(String, Object)

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

HasIndex(Expression<Func<TRelatedEntity,Object>>)

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

HasIndex(String[])

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

(继承自 ReferenceOwnershipBuilder)
HasKey(Expression<Func<TRelatedEntity,Object>>)

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

HasKey(String[])

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

(继承自 ReferenceOwnershipBuilder)
HasMany(String, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
HasMany(Type, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
HasMany<TNewRelatedEntity>(Expression<Func<TRelatedEntity,IEnumerable<TNewRelatedEntity>>>)

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

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

调用此方法后,应链接对 的 WithOne(Expression<Func<TRelatedEntity,TEntity>>) 调用以完全配置关系。 如果只调用此方法而不调用链接,则不会产生有效的关系。

HasOne(String, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
HasOne(Type, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
HasOne<TNewRelatedEntity>(Expression<Func<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

HasOne<TNewRelatedEntity>(String)

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

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

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

HasPrincipalKey(Expression<Func<TEntity,Object>>)

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

HasPrincipalKey(String[])

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

Ignore(Expression<Func<TRelatedEntity,Object>>)

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

Ignore(String)

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

OnDelete(DeleteBehavior)

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

OwnsMany(String, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

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

(继承自 ReferenceOwnershipBuilder)
OwnsMany(Type, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

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

(继承自 ReferenceOwnershipBuilder)
OwnsMany<TDependentEntity>(Expression<Func<TRelatedEntity,IEnumerable<TDependentEntity>>>)

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

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

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

OwnsMany<TDependentEntity>(Expression<Func<TRelatedEntity,IEnumerable<TDependentEntity>>>, Action<CollectionOwnershipBuilder<TRelatedEntity,TDependentEntity>>)

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

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

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

OwnsMany<TDependentEntity>(String)

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

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

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

OwnsMany<TDependentEntity>(String, Action<CollectionOwnershipBuilder<TRelatedEntity,TDependentEntity>>)

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

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

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

OwnsOne(String, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

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

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

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

(继承自 ReferenceOwnershipBuilder)
OwnsOne(Type, String)

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

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

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

(继承自 ReferenceOwnershipBuilder)
OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

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

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

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

(继承自 ReferenceOwnershipBuilder)
OwnsOne<TNewRelatedEntity>(Expression<Func<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

OwnsOne<TNewRelatedEntity>(Expression<Func<TRelatedEntity,TNewRelatedEntity>>, Action<ReferenceOwnershipBuilder<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

OwnsOne<TNewRelatedEntity>(String)

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

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

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

OwnsOne<TNewRelatedEntity>(String, Action<ReferenceOwnershipBuilder<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

Property(String)

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

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

(继承自 ReferenceOwnershipBuilder)
Property(Type, String)

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

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

(继承自 ReferenceOwnershipBuilder)
Property<TProperty>(Expression<Func<TRelatedEntity,TProperty>>)

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

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

Property<TProperty>(String)

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

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

(继承自 ReferenceOwnershipBuilder)
UsePropertyAccessMode(PropertyAccessMode)

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

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

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

显式接口实现

IInfrastructure<IMutableModel>.Instance

此关系所属的模型。

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

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

(继承自 ReferenceOwnershipBuilder)
IInfrastructure<InternalRelationshipBuilder>.Instance

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

(继承自 ReferenceReferenceBuilderBase)

扩展方法

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasConstraintName(ReferenceOwnershipBuilder, String)

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

HasConstraintName<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, String)

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

ToTable(ReferenceOwnershipBuilder, String)

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

ToTable(ReferenceOwnershipBuilder, String, String)

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

ToTable<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, String)

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

ToTable<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, String, String)

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

ForSqlServerIsMemoryOptimized(ReferenceOwnershipBuilder, Boolean)

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

ForSqlServerIsMemoryOptimized<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, Boolean)

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

适用于