EntityTypeBuilder 類別

定義

提供簡單的 API 來設定 IMutableEntityType

public class EntityTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.IMutableModel>, Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>
public class EntityTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder>
public class EntityTypeBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionEntityTypeBuilder>
type EntityTypeBuilder = class
    interface IInfrastructure<IMutableModel>
    interface IInfrastructure<InternalEntityTypeBuilder>
type EntityTypeBuilder = class
    interface IInfrastructure<InternalEntityTypeBuilder>
type EntityTypeBuilder = class
    interface IInfrastructure<IConventionEntityTypeBuilder>
Public Class EntityTypeBuilder
Implements IInfrastructure(Of IMutableModel), IInfrastructure(Of InternalEntityTypeBuilder)
Public Class EntityTypeBuilder
Implements IInfrastructure(Of InternalEntityTypeBuilder)
Public Class EntityTypeBuilder
Implements IInfrastructure(Of IConventionEntityTypeBuilder)
繼承
EntityTypeBuilder
衍生
實作
IInfrastructure<IMutableModel> IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalEntityTypeBuilder> IInfrastructure<IConventionEntityTypeBuilder>

備註

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

建構函式

EntityTypeBuilder(IMutableEntityType)

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

EntityTypeBuilder(InternalEntityTypeBuilder)

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

屬性

Builder

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

Metadata

正在設定的實體型別。

方法

ComplexProperty(String)

傳回物件,這個物件可用來設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty(String, Action<ComplexPropertyBuilder>)

設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty(Type, String)

設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty(Type, String, Action<ComplexPropertyBuilder>)

傳回物件,這個物件可用來設定複雜類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty(Type, String, String)

設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty(Type, String, String, Action<ComplexPropertyBuilder>)

傳回物件,這個物件可用來設定複雜類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty<TProperty>(String)

傳回物件,這個物件可用來設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty<TProperty>(String, Action<ComplexPropertyBuilder<TProperty>>)

設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty<TProperty>(String, String)

傳回物件,這個物件可用來設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

ComplexProperty<TProperty>(String, String, Action<ComplexPropertyBuilder<TProperty>>)

設定實體類型的複雜屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

FindRelatedEntityType(String, String)

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

FindRelatedEntityType(Type, String)

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

HasAlternateKey(String[])

如果此實體類型不存在於指定的屬性上,請在模型中建立替代索引鍵。 這會強制屬性為唯讀。 用來 HasIndex 指定模型中不強制屬性為唯讀的唯一性。

HasAnnotation(String, Object)

在實體類型上加入或更新批註。 如果 中 annotation 指定索引鍵的注釋已經存在,其值將會更新。

HasBaseType(String)

在繼承階層中設定此實體類型的基底類型。

HasBaseType(Type)

在繼承階層中設定此實體類型的基底類型。

HasChangeTrackingStrategy(ChangeTrackingStrategy)

設定 ChangeTrackingStrategy 要用於這個實體類型的 。 此策略指出內容如何偵測實體類型實例的屬性變更。

HasChangeTrackingStrategy(ChangeTrackingStrategy)

設定 ChangeTrackingStrategy 要用於這個實體類型的 。 此策略指出內容如何偵測實體類型實例的屬性變更。

HasData(IEnumerable<Object>)

將此實體設定為具有種子資料。 它用來產生資料動作移轉。

HasData(Object[])

將此實體設定為具有種子資料。 它用來產生資料動作移轉。

HasDiscriminator()

設定用來識別存放區中實體類型的鑒別子屬性。

HasDiscriminator(String, Type)

設定用來識別存放區中實體類型的鑒別子屬性。

HasDiscriminator<TDiscriminator>(String)

設定用來識別存放區中實體類型的鑒別子屬性。

HasIndex(String[])

在指定的屬性上設定未命名的索引。 如果指定屬性清單上有現有的未命名索引,則會傳回現有的索引以供組態使用。

HasIndex(String[], String)

在指定的屬性上設定索引,並使用指定的名稱。 如果指定屬性清單和具有指定名稱的現有索引,則會針對組態傳回現有的索引。

HasKey(String[])

設定組成這個實體類型之主鍵的屬性。

HasMany(String)

設定關聯性,其中此實體類型具有包含關聯性中其他類型實例的集合。

HasMany(String, String)

設定關聯性,其中此實體類型具有包含關聯性中其他類型實例的集合。

HasMany(Type, String)

設定關聯性,其中此實體類型具有包含關聯性中其他類型實例的集合。

HasManyBuilder(EntityType, PropertyInfo)

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

HasManyBuilder(EntityType, String)

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

HasNoDiscriminator()

將實體類型設定為沒有鑒別子屬性。

HasNoKey()

將實體類型設定為沒有索引鍵。 它只能用於查詢。

HasOne(String)

設定關聯性,其中此實體類型具有指向關聯性中其他類型之單一實例的參考。

HasOne(String, String)

設定關聯性,其中此實體類型具有指向關聯性中其他類型之單一實例的參考。

HasOne(Type, String)

設定關聯性,其中此實體類型具有指向關聯性中其他類型之單一實例的參考。

HasOneBuilder(EntityType, PropertyInfo)

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

HasOneBuilder(EntityType, String)

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

HasOneBuilder(MemberIdentity, EntityType)

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

HasQueryFilter(LambdaExpression)

指定 LINQ 述詞運算式,此運算式會自動套用至以這個實體類型為目標的任何查詢。

HasTrigger(IMutableEntityType, String)

設定實體類型的觸發程式。

Ignore(String)

從實體類型中排除指定的屬性。 這個方法通常用來從慣例新增的實體類型中移除屬性和導覽。

IndexerProperty(Type, String)

傳回物件,這個物件可用來設定實體類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

IndexerProperty<TProperty>(String)

傳回物件,這個物件可用來設定實體類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

Navigation(String)

傳回物件,這個物件可用來設定實體類型的現有導覽屬性。 巡覽屬性不存在時發生錯誤。

New(InternalEntityTypeBuilder)

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

OwnsMany(String, String)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

設定此實體類型提供關聯性給關聯性中的其他型別的身分識別。

OwnsMany(String, String, Action<OwnedNavigationBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsMany(String, Type, String)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsMany(String, Type, String, Action<OwnedNavigationBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsMany(Type, String)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

設定此實體類型提供關聯性給關聯性中的其他型別的身分識別。

OwnsMany(Type, String, Action<OwnedNavigationBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(String, String)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(String, String, Action<OwnedNavigationBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

即使導覽的類型相同,每個擁有權關聯性的目標實體類型都會被視為不同的實體類型。 目標實體類型的設定不會套用至其他擁有權關聯性的目標實體類型。

擁有實體上的大部分作業都需要使用對應的導覽,透過擁有者實體存取它。

OwnsOne(String, Type, String)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(String, Type, String, Action<OwnedNavigationBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(Type, String)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(Type, String, Action<OwnedNavigationBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

設定目標實體由 (或) 此實體的一部分所擁有的關聯性。

即使導覽的類型相同,每個擁有權關聯性的目標實體類型都會被視為不同的實體類型。 目標實體類型的設定不會套用至其他擁有權關聯性的目標實體類型。

擁有實體上的大部分作業都需要使用對應的導覽,透過擁有者實體存取它。

PrimitiveCollection(String)

傳回物件,這個物件可用來設定實體類型的屬性,其中該屬性代表基本值的集合,例如字串或整數。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

PrimitiveCollection(Type, String)

傳回物件,這個物件可用來設定實體類型的屬性,其中該屬性代表基本值的集合,例如字串或整數。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

PrimitiveCollection<TProperty>(String)

傳回物件,這個物件可用來設定實體類型的屬性,其中該屬性代表基本值的集合,例如字串或整數。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

Property(String)

傳回物件,這個物件可用來設定實體類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

Property(Type, String)

傳回物件,這個物件可用來設定實體類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

Property<TProperty>(String)

傳回物件,這個物件可用來設定實體類型的屬性。 如果沒有具有指定名稱的屬性存在,則會加入新的屬性。

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode設定要用於這個實體類型之所有屬性的 。

根據預設,如果依慣例找到支援欄位或已指定支援欄位,則會在建構新物件時使用,通常是從資料庫查詢實體時。 屬性會用於所有其他存取。 呼叫這個方法會變更此實體類型之所有屬性的行為,如列舉中所述 PropertyAccessMode

呼叫這個方法會覆寫此實體類型的所有屬性,任何在模型上設定的存取模式。

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode設定要用於這個實體類型之所有屬性的 。

明確介面實作

IInfrastructure<IConventionEntityTypeBuilder>.Instance

取得用來設定實體類型的內部產生器。

IInfrastructure<IMutableModel>.Instance

實體類型所屬的模型。

IInfrastructure<InternalEntityTypeBuilder>.Instance

取得用來設定實體類型的內部產生器。

擴充方法

HasAnalyticalStoreTimeToLive(EntityTypeBuilder, Nullable<Int32>)

在容器範圍設定分析存放區存留時間,以秒為單位。

HasAutoscaleThroughput(EntityTypeBuilder, Nullable<Int32>)

設定自動調整布建的輸送量供應專案。

HasDefaultTimeToLive(EntityTypeBuilder, Nullable<Int32>)

設定容器範圍的預設存留時間,以秒為單位。

HasManualThroughput(EntityTypeBuilder, Nullable<Int32>)

設定手動布建的輸送量供應專案。

HasPartitionKey(EntityTypeBuilder, String)

設定用來儲存資料分割索引鍵的屬性。

ToContainer(EntityTypeBuilder, String)

設定以 Azure Cosmos 為目標時,實體類型對應的容器。

UseETagConcurrency(EntityTypeBuilder)

設定此實體以使用 CosmosDb etag 並行檢查。

GetInfrastructure<T>(IInfrastructure<T>)

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

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

ToInMemoryQuery(EntityTypeBuilder, LambdaExpression)

設定用來提供實體類型資料的查詢。

DeleteUsingStoredProcedure(EntityTypeBuilder, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於刪除的預存程式。

DeleteUsingStoredProcedure(EntityTypeBuilder, String, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於刪除的預存程式。

DeleteUsingStoredProcedure(EntityTypeBuilder, String, String, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於刪除的預存程式。

HasCheckConstraint(EntityTypeBuilder, String, String)
已過時。

以關係資料庫為目標時,設定資料庫檢查條件約束。

HasCheckConstraint(EntityTypeBuilder, String, String, Action<CheckConstraintBuilder>)
已過時。

以關係資料庫為目標時,設定資料庫檢查條件約束。

HasComment(EntityTypeBuilder, String)
已過時。

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

HasDiscriminator(EntityTypeBuilder)

設定辨識子資料行,用來識別當繼承階層對應至關係資料庫中的單一資料表時,資料表中每個資料列所代表的實體類型。

HasDiscriminator(EntityTypeBuilder, String, Type)

設定辨識子資料行,用來識別當繼承階層對應至關係資料庫中的單一資料表時,資料表中每個資料列所代表的實體類型。

HasDiscriminator<TDiscriminator>(EntityTypeBuilder, String)

設定辨識子資料行,用來識別當繼承階層對應至關係資料庫中的單一資料表時,資料表中每個資料列所代表的實體類型。

InsertUsingStoredProcedure(EntityTypeBuilder, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於插入的預存程式。

InsertUsingStoredProcedure(EntityTypeBuilder, String, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於插入的預存程式。

InsertUsingStoredProcedure(EntityTypeBuilder, String, String, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於插入的預存程式。

SplitToTable(EntityTypeBuilder, String, Action<SplitTableBuilder>)

設定此實體類型上的某些屬性,以對應至不同的資料表。 主鍵屬性會對應至所有資料表,其他屬性必須明確對應。

SplitToTable(EntityTypeBuilder, String, String, Action<SplitTableBuilder>)

設定此實體類型上的某些屬性,以對應至不同的資料表。 主鍵屬性會對應至所有資料表,其他屬性必須明確對應。

SplitToView(EntityTypeBuilder, String, Action<SplitViewBuilder>)

設定此實體類型上的某些屬性,以對應至不同的檢視。 主鍵屬性會對應至所有檢視,其他屬性必須明確對應。

SplitToView(EntityTypeBuilder, String, String, Action<SplitViewBuilder>)

設定此實體類型上的某些屬性,以對應至不同的檢視。 主鍵屬性會對應至所有檢視,其他屬性必須明確對應。

ToFunction(EntityTypeBuilder, MethodInfo)

設定以關係資料庫為目標時,實體類型所對應的函式。

ToFunction(EntityTypeBuilder, MethodInfo, Action<TableValuedFunctionBuilder>)

設定以關係資料庫為目標時,實體類型所對應的函式。

ToFunction(EntityTypeBuilder, String)

設定以關係資料庫為目標時,實體類型所對應的函式。

ToFunction(EntityTypeBuilder, String, Action<TableValuedFunctionBuilder>)

設定以關係資料庫為目標時,實體類型所對應的函式。

ToSqlQuery(EntityTypeBuilder, String)

設定用來提供實體類型資料的 SQL 字串。

ToTable(EntityTypeBuilder, Action<TableBuilder>)

設定以關係資料庫為目標時,實體類型所對應的資料表。

ToTable(EntityTypeBuilder, String)

設定以關係資料庫為目標時,實體類型所對應的資料表。

ToTable(EntityTypeBuilder, String, Action<TableBuilder>)

設定以關係資料庫為目標時,實體類型所對應的資料表。

ToTable(EntityTypeBuilder, String, String)

設定以關係資料庫為目標時,實體類型所對應的資料表。

ToTable(EntityTypeBuilder, String, String, Action<TableBuilder>)

設定以關係資料庫為目標時,實體類型所對應的資料表。

ToView(EntityTypeBuilder, String)

設定以關係資料庫為目標時,實體類型所對應的檢視。

ToView(EntityTypeBuilder, String, Action<ViewBuilder>)

設定以關係資料庫為目標時,實體類型所對應的檢視。

ToView(EntityTypeBuilder, String, String)

設定以關係資料庫為目標時,實體類型所對應的檢視。

ToView(EntityTypeBuilder, String, String, Action<ViewBuilder>)

設定以關係資料庫為目標時,實體類型所對應的檢視。

UpdateUsingStoredProcedure(EntityTypeBuilder, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於更新的預存程式。

UpdateUsingStoredProcedure(EntityTypeBuilder, String, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於更新的預存程式。

UpdateUsingStoredProcedure(EntityTypeBuilder, String, String, Action<StoredProcedureBuilder>)

設定以關係資料庫為目標時,實體類型用於更新的預存程式。

UseTpcMappingStrategy(EntityTypeBuilder)

將 TPC 設定為衍生類型的對應策略。 每個類型都會對應至不同的資料庫物件。 所有屬性都會對應至對應物件上的資料行。

UseTphMappingStrategy(EntityTypeBuilder)

將 TPH 設定為衍生類型的對應策略。 所有類型都會對應至相同的資料庫物件。 這是預設對應策略。

UseTptMappingStrategy(EntityTypeBuilder)

將 TPT 設定為衍生類型的對應策略。 每個類型都會對應至不同的資料庫物件。 只有宣告的屬性會對應至對應物件上的資料行。

ForSqliteToTable(EntityTypeBuilder, String)

設定以 SQLite 為目標時,實體所對應的資料表。

ForSqlServerIsMemoryOptimized(EntityTypeBuilder, Boolean)
已過時。

設定實體以記憶體優化為目標時,實體所對應的資料表SQL Server。

ForSqlServerToTable(EntityTypeBuilder, String)

設定以SQL Server為目標時,實體所對應的資料表。

ForSqlServerToTable(EntityTypeBuilder, String, String)

設定以SQL Server為目標時,實體所對應的資料表。

IsMemoryOptimized(EntityTypeBuilder, Boolean)
已過時。

設定實體以記憶體優化為目標時,實體所對應的資料表SQL Server。

適用於