语言

PropertyBuilder 类

定义

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

public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
[System.Runtime.CompilerServices.Nullable(0)]
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionPropertyBuilder>
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalPropertyBuilder>
[<System.Runtime.CompilerServices.Nullable(0)>]
type PropertyBuilder = class
    interface IInfrastructure<IConventionPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<InternalPropertyBuilder>
type PropertyBuilder = class
    interface IInfrastructure<IConventionPropertyBuilder>
Public Class PropertyBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of IConventionPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of InternalPropertyBuilder)
继承
PropertyBuilder
派生
特性
实现
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder> IInfrastructure<IConventionPropertyBuilder>

注解

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

有关详细信息和示例,请参阅 建模实体类型和关系 。

构造函数

名称 说明
PropertyBuilder(IMutableProperty)

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

PropertyBuilder(InternalPropertyBuilder)

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

属性

名称 说明
Metadata

正在配置的属性。

方法

名称 说明
HasAnnotation(String, Object)

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

HasConversion(Type, Type, Type)

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

HasConversion(Type, Type)

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

HasConversion(Type, ValueComparer, ValueComparer)

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

HasConversion(Type, ValueComparer)

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

HasConversion(Type)

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

HasConversion(ValueConverter, ValueComparer, ValueComparer)

配置属性,以便使用给定 ValueConverter的属性值转换到数据库和从数据库转换。

HasConversion(ValueConverter, ValueComparer)

配置属性,以便使用给定 ValueConverter的属性值转换到数据库和从数据库转换。

HasConversion(ValueConverter)

配置属性,以便使用给定 ValueConverter的属性值转换到数据库和从数据库转换。

HasConversion<TConversion,TComparer,TProviderComparer>()

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

HasConversion<TConversion,TComparer>()

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

HasConversion<TConversion>()

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

HasConversion<TConversion>(ValueComparer, ValueComparer)

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

HasConversion<TConversion>(ValueComparer)

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

HasField(String)

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

HasMaxLength(Int32)

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

HasPrecision(Int32, Int32)

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

HasPrecision(Int32)

配置属性的精度。

HasSentinel(Object)

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

HasValueGenerator(Func<IProperty,IEntityType,ValueGenerator>)

配置用于创建 ValueGenerator 用于生成此属性值的工厂。

HasValueGenerator(Func<IProperty,ITypeBase,ValueGenerator>)

配置用于创建 ValueGenerator 用于生成此属性值的工厂。

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设置要用于此属性的项。

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

为此属性调用此方法会过度争用任何在实体类型或模型上设置的访问模式。

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode设置要用于此属性的项。

ValueGeneratedNever()

配置一个属性,以在保存此实体类型的实例时从不具有数据库生成的值。

ValueGeneratedOnAdd()

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

ValueGeneratedOnAddOrUpdate()

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

ValueGeneratedOnUpdate()

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

ValueGeneratedOnUpdateSometimes()

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

显式接口实现

名称 说明
IInfrastructure<IConventionPropertyBuilder>.Instance

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

IInfrastructure<IMutableModel>.Instance

属性所属的模型。

IInfrastructure<InternalPropertyBuilder>.Instance

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

扩展方法

名称 说明
EnableFullTextSearch(PropertyBuilder, String, Boolean)

使用指定语言启用对此属性的全文搜索。

ForSqliteHasColumnName(PropertyBuilder, String)

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

ForSqliteHasColumnType(PropertyBuilder, String)

配置属性在面向 SQLite 时映射到的列的数据类型。

ForSqliteHasDefaultValue(PropertyBuilder, Object)

配置属性在面向 SQLite 时映射到的列的默认值。

ForSqliteHasDefaultValueSql(PropertyBuilder, String)

配置属性在面向 SQLite 时映射到的列的默认值表达式。

ForSqliteHasDimension(PropertyBuilder, Ordinates)

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

ForSqliteHasDimension(PropertyBuilder, Ordinates)
已过时.

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

ForSqliteHasSrid(PropertyBuilder, Int32)
已过时.

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

ForSqlServerHasColumnName(PropertyBuilder, String)

配置属性在定位SQL Server时映射到的列。

ForSqlServerHasColumnType(PropertyBuilder, String)

配置属性在定位SQL Server时映射到的列的数据类型。 这应该是完整的类型名称,包括精度、刻度、长度等。

ForSqlServerHasComputedColumnSql(PropertyBuilder, String)

将属性配置为在定位SQL Server时映射到计算列。

ForSqlServerHasDefaultValue(PropertyBuilder, Object)

配置属性在定位SQL Server时映射到的列的默认值。

ForSqlServerHasDefaultValueSql(PropertyBuilder, String)

配置属性在定位SQL Server时映射到的列的默认值表达式。

ForSqlServerUseSequenceHiLo(PropertyBuilder, String, String)
已过时.

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

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasColumnName(PropertyBuilder, String)

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

HasColumnOrder(PropertyBuilder, Nullable<Int32>)

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

HasColumnType(PropertyBuilder, String)

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

HasComment(PropertyBuilder, String)

配置要应用于列的注释

HasComputedColumnSql(PropertyBuilder, String, Nullable<Boolean>)

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

HasComputedColumnSql(PropertyBuilder, String)

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

HasComputedColumnSql(PropertyBuilder)

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

HasDefaultValue(PropertyBuilder, Object, String)

配置属性在定位SQL Server时映射到的列的默认值。

HasDefaultValue(PropertyBuilder, Object)

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

HasDefaultValue(PropertyBuilder)

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

HasDefaultValueSql(PropertyBuilder, String, String)

配置属性在定位SQL Server时映射到的列的默认值表达式。

HasDefaultValueSql(PropertyBuilder, String)

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

HasDefaultValueSql(PropertyBuilder)

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

HasGeometricDimension(PropertyBuilder, Ordinates)

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

HasJsonPropertyName(PropertyBuilder, String)

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

HasSrid(PropertyBuilder, Int32)

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

IsETagConcurrency(PropertyBuilder)

将此属性配置为 etag 并发令牌。

IsFixedLength(PropertyBuilder, Boolean)

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

IsSparse(PropertyBuilder, Boolean)

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

IsVector(PropertyBuilder, DistanceFunction, Int32)

将属性配置为Azure Cosmos DB的向量。

IsVectorProperty(PropertyBuilder, DistanceFunction, Int32)

将属性配置为Azure Cosmos DB的向量。

ToJsonProperty(PropertyBuilder, String)

配置属性在目标Azure Cosmos 时映射到的属性名称。

UseAutoincrement(PropertyBuilder)

将属性配置为使用 SQLite AUTOINCREMENT 功能在面向 SQLite 时为新实体生成值。 此方法将属性设置为 OnAdd.

UseCollation(PropertyBuilder, String)

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

UseHiLo(PropertyBuilder, String, String)

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

UseIdentityColumn(PropertyBuilder, Int32, Int32)

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

UseIdentityColumn(PropertyBuilder, Int64, Int32)

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

UseSequence(PropertyBuilder, String, String)

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

UseSqlServerIdentityColumn(PropertyBuilder, Int32, Int32)
已过时.

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

UseSqlServerIdentityColumn(PropertyBuilder)

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

适用于