PropertyBuilder 類別

定義

提供簡單的 API 來設定 IMutableProperty

public class PropertyBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder>
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>
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 InternalPropertyBuilder)
Public Class PropertyBuilder
Implements IInfrastructure(Of IConventionPropertyBuilder)
繼承
PropertyBuilder
衍生
實作
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalPropertyBuilder> IInfrastructure<IConventionPropertyBuilder>

備註

使用 ModelBuilder API 時,這個類別的實例會從方法傳回,而且不是設計成直接在應用程式程式碼中建構。

如需詳細資訊和範例,請參閱 模型化實體類型和關聯 性。

建構函式

PropertyBuilder(IMutableProperty)

這是支援 Entity Framework Core 基礎結構的內部 API,不受與公用 API 相同的相容性標準。 它可能會在任何版本中變更或移除,而不會有任何通知。 您應該只在程式碼中直接使用它,並知道這麼做可能會導致應用程式在更新至新的 Entity Framework Core 版本時失敗。

PropertyBuilder(InternalPropertyBuilder)

此 API 支援 Entity Framework Core 基礎結構,並不適合直接從您的程式碼使用。 此 API 可能會在未來的版本中變更或移除。

屬性

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(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

用來設定 屬性的內部產生器。

擴充方法

IsETagConcurrency(PropertyBuilder)

將這個屬性設定為 etag 並行存取權杖。

ToJsonProperty(PropertyBuilder, String)

設定以 Azure Cosmos 為目標時,屬性所對應的屬性名稱。

GetInfrastructure<T>(IInfrastructure<T>)

從使用 IInfrastructure<T> 隱藏的屬性取得值。

這個方法通常由資料庫提供者使用, (和其他延伸模組) 。 它通常不會用於應用程式程式碼中。

HasColumnName(PropertyBuilder, String)

設定當以關係資料庫為目標時,屬性所對應的資料行。

HasColumnOrder(PropertyBuilder, Nullable<Int32>)

設定屬性所對應之資料行的順序。

HasColumnType(PropertyBuilder, String)

設定以關係資料庫為目標時,屬性所對應之資料行的資料類型。 這應該是完整的類型名稱,包括精確度、小數位數、長度等。

HasComment(PropertyBuilder, String)

設定要套用至資料行的批註

HasComputedColumnSql(PropertyBuilder)

設定屬性,以關係資料庫為目標時對應至計算資料行。

HasComputedColumnSql(PropertyBuilder, String)

設定屬性,以關係資料庫為目標時對應至計算資料行。

HasComputedColumnSql(PropertyBuilder, String, Nullable<Boolean>)

設定屬性,以關係資料庫為目標時對應至計算資料行。

HasDefaultValue(PropertyBuilder)

設定以關係資料庫為目標時,屬性所對應之資料行的預設值。

HasDefaultValue(PropertyBuilder, Object)

設定以關係資料庫為目標時,屬性所對應之資料行的預設值。

HasDefaultValueSql(PropertyBuilder)

設定以關係資料庫為目標時,屬性所對應之資料行的預設值運算式。

HasDefaultValueSql(PropertyBuilder, String)

設定以關係資料庫為目標時,屬性所對應之資料行的預設值運算式。

HasJsonPropertyName(PropertyBuilder, String)

設定對應至 JSON 資料行之實體的屬性、將實體屬性對應至特定 JSON 屬性,而不是使用實體屬性名稱。

IsFixedLength(PropertyBuilder, Boolean)

將 屬性設定為只能儲存固定長度的資料,例如字串。

UseCollation(PropertyBuilder, String)

設定 屬性以使用指定的定序。 資料庫資料行將會使用指定的定序來建立,而且會隱含地用於所有區分定序的作業中。

ForSqliteHasDimension(PropertyBuilder, Ordinates)

設定以 SQLite 為目標時,屬性所對應之資料行的維度。

ForSqliteHasDimension(PropertyBuilder, Ordinates)
已過時。.

設定以 SQLite 為目標時,屬性所對應之資料行的維度。

HasGeometricDimension(PropertyBuilder, Ordinates)

設定以 SQLite 為目標時,屬性所對應之資料行的維度。

ForSqliteHasColumnName(PropertyBuilder, String)

設定以 SQLite 為目標時,屬性所對應的資料行。

ForSqliteHasColumnType(PropertyBuilder, String)

設定以 SQLite 為目標時,屬性所對應之資料行的資料類型。

ForSqliteHasDefaultValue(PropertyBuilder, Object)

設定以 SQLite 為目標時,屬性所對應之資料行的預設值。

ForSqliteHasDefaultValueSql(PropertyBuilder, String)

設定以 SQLite 為目標時,屬性所對應之資料行的預設值運算式。

ForSqliteHasSrid(PropertyBuilder, Int32)
已過時。.

設定以 SQLite 為目標時,屬性所對應之資料行的 SRID。

HasSrid(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)
已過時。.

設定索引鍵屬性,以在目標為SQL Server時,使用序列型 hi-lo 模式來產生新實體的值。 這個方法會將 屬性設定為 OnAdd

IsSparse(PropertyBuilder, Boolean)

設定以SQL Server為目標時,屬性的資料行是否建立為疏鬆。

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)

設定索引鍵屬性,以使用 SQL Server IDENTITY 功能在目標SQL Server時產生新實體的值。 這個方法會將 屬性設定為 OnAdd

UseSqlServerIdentityColumn(PropertyBuilder, Int32, Int32)
已過時。.

設定索引鍵屬性,以使用 SQL Server IDENTITY 功能在目標SQL Server時產生新實體的值。 這個方法會將 屬性設定為 OnAdd

適用於