ComplexTypePropertyBuilder 类

定义

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

public class ComplexTypePropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionPropertyBuilder>
type ComplexTypePropertyBuilder = class
    interface IInfrastructure<IConventionPropertyBuilder>
Public Class ComplexTypePropertyBuilder
Implements IInfrastructure(Of IConventionPropertyBuilder)
继承
ComplexTypePropertyBuilder
派生
实现

注解

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

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

构造函数

ComplexTypePropertyBuilder(IMutableProperty)

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

属性

Metadata

正在配置的属性。

方法

HasAnnotation(String, Object)

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

HasConversion(Type)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion(Type, Type)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion(Type, Type, Type)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion(Type, ValueComparer)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion(Type, ValueComparer, ValueComparer)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion(ValueConverter)

配置 属性,以便使用给定 ValueConverter的 将属性值与数据库进行转换和转换。

HasConversion(ValueConverter, ValueComparer)

配置 属性,以便使用给定 ValueConverter的 将属性值与数据库进行转换和转换。

HasConversion(ValueConverter, ValueComparer, ValueComparer)

配置 属性,以便使用给定 ValueConverter的 将属性值与数据库进行转换和转换。

HasConversion<TConversion,TComparer,TProviderComparer>()

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion<TConversion,TComparer>()

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion<TConversion>()

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion<TConversion>(ValueComparer)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasConversion<TConversion>(ValueComparer, ValueComparer)

配置 属性,以便在写入数据库之前转换属性值,并在从数据库读取数据时转换回来。

HasField(String)

设置要用于此属性的后备字段。

HasMaxLength(Int32)

配置可以存储在此属性中的数据的最大长度。 只能对数组属性设置最大长度 (包括 String 属性) 。

HasPrecision(Int32)

配置属性的精度。

HasPrecision(Int32, Int32)

配置属性的精度和小数位数。

HasSentinel(Object)

配置值,该值将用于确定是否已设置属性。 如果属性设置为 sentinel 值,则被视为未设置。 默认情况下,sentinel 值是属性类型的 CLR 默认值。

HasValueGenerator(Type)

ValueGenerator配置将为此属性生成值的 。

HasValueGenerator<TGenerator>()

ValueGenerator配置将为此属性生成值的 。

HasValueGeneratorFactory(Type)

ValueGeneratorFactory配置 用于创建 ValueGenerator ,以用于为此属性生成值。

HasValueGeneratorFactory<TFactory>()

ValueGeneratorFactory配置 用于创建 ValueGenerator ,以用于为此属性生成值。

IsConcurrencyToken(Boolean)

配置此属性是否应用作并发令牌。 将属性配置为并发令牌时,将在期间 SaveChanges() 更新或删除此复杂类型的实例时检查数据库中的值,以确保自从数据库中检索实例以来,该实例未发生更改。 如果已更改,将引发异常,并且更改不会应用于数据库。

IsRequired(Boolean)

配置此属性是必须分配 null 值还是有效值。 仅当属性基于可分配 null的 CLR 类型时,才能将其配置为非必需属性。

IsRowVersion()

将 属性配置为 ValueGeneratedOnAddOrUpdate()IsConcurrencyToken(Boolean)

IsUnicode(Boolean)

配置 属性是否能够持久保存 unicode 字符。 只能在属性上 String 设置。

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode设置要用于此属性的 。

ValueGeneratedNever()

将属性配置为在保存此复杂类型的实例时永远不会由数据库生成值。

ValueGeneratedOnAdd()

将属性配置为仅在保存新实体时生成值,除非已设置非 null 的非临时值,在这种情况下,将改为保存设置的值。 该值可能由客户端值生成器生成,也可以由数据库生成,作为保存实体的一部分。

ValueGeneratedOnAddOrUpdate()

将属性配置为在保存新实体或现有实体时生成值。

ValueGeneratedOnUpdate()

将属性配置为在保存现有实体时生成值。

ValueGeneratedOnUpdateSometimes()

将属性配置为在保存现有实体时在特定条件下生成值。

显式接口实现

IInfrastructure<IConventionPropertyBuilder>.Instance

用于配置属性的内部生成器。

扩展方法

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasColumnName(ComplexTypePropertyBuilder, String)

配置属性在面向关系数据库时映射到的列。

HasColumnOrder(ComplexTypePropertyBuilder, Nullable<Int32>)

配置属性映射到的列的顺序。

HasColumnType(ComplexTypePropertyBuilder, String)

配置属性在面向关系数据库时映射到的列的数据类型。 这应该是完整的类型名称,包括精度、小数位数、长度等。

HasComment(ComplexTypePropertyBuilder, String)

配置要应用于列的注释

HasComputedColumnSql(ComplexTypePropertyBuilder)

将 属性配置为在面向关系数据库时映射到计算列。

HasComputedColumnSql(ComplexTypePropertyBuilder, String)

将 属性配置为在面向关系数据库时映射到计算列。

HasComputedColumnSql(ComplexTypePropertyBuilder, String, Nullable<Boolean>)

将 属性配置为在面向关系数据库时映射到计算列。

HasDefaultValue(ComplexTypePropertyBuilder)

配置属性在面向关系数据库时映射到的列的默认值。

HasDefaultValue(ComplexTypePropertyBuilder, Object)

配置属性在面向关系数据库时映射到的列的默认值。

HasDefaultValueSql(ComplexTypePropertyBuilder)

配置属性在面向关系数据库时映射到的列的默认值表达式。

HasDefaultValueSql(ComplexTypePropertyBuilder, String)

配置属性在面向关系数据库时映射到的列的默认值表达式。

HasJsonPropertyName(ComplexTypePropertyBuilder, String)

配置映射到 JSON 列的实体的属性,将实体属性映射到特定的 JSON 属性,而不是使用实体属性名称。

IsFixedLength(ComplexTypePropertyBuilder, Boolean)

将 属性配置为能够仅存储固定长度的数据,例如字符串。

UseCollation(ComplexTypePropertyBuilder, String)

将 属性配置为使用给定的排序规则。 将使用给定的排序规则创建数据库列,并将在所有区分排序规则的操作中隐式使用它。

HasSrid(ComplexTypePropertyBuilder, Int32)

配置属性在面向 SQLite 时映射到的列的 SRID。

IsSparse(ComplexTypePropertyBuilder, Boolean)

配置在以 SQL Server 为目标时是否将属性的列创建为稀疏列。

UseHiLo(ComplexTypePropertyBuilder, String, String)

将 key 属性配置为在面向SQL Server时使用基于序列的 hi-lo 模式为新实体生成值。 此方法将 属性设置为 OnAdd

UseIdentityColumn(ComplexTypePropertyBuilder, Int32, Int32)

将 key 属性配置为在面向SQL Server时使用 SQL Server IDENTITY 功能为新实体生成值。 此方法将 属性设置为 OnAdd

UseIdentityColumn(ComplexTypePropertyBuilder, Int64, Int32)

将 key 属性配置为在面向SQL Server时使用 SQL Server IDENTITY 功能为新实体生成值。 此方法将 属性设置为 OnAdd

UseSequence(ComplexTypePropertyBuilder, String, String)

将 key 属性配置为在面向SQL Server时使用基于序列的键值生成模式为新实体生成值。 此方法将 属性设置为 OnAdd

适用于