語言

CollectionOwnershipBuilder 類別

定義

提供一個簡單的 API,用於配置一對多的所有權。

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

建構函式

名稱 Description
CollectionOwnershipBuilder(EntityType, EntityType, InternalRelationshipBuilder)

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

CollectionOwnershipBuilder(InternalRelationshipBuilder, CollectionOwnershipBuilder, Boolean, Boolean, Boolean)

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

屬性

名稱 Description
Builder

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

(繼承來源 ReferenceCollectionBuilderBase)
DependentEntityType

取得用於配置此關係的相依實體類型。

(繼承來源 ReferenceCollectionBuilderBase)
Metadata

代表這種關係的外鍵。

(繼承來源 ReferenceCollectionBuilderBase)
OwnedEntityType

正在設定的擁有實體類型。

PrincipalEntityType

取得用於配置此關係的主要實體類型。

(繼承來源 ReferenceCollectionBuilderBase)

方法

名稱 Description
FindRelatedEntityType(String, String)

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

FindRelatedEntityType(Type, String)

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

HasChangeTrackingStrategy(ChangeTrackingStrategy)

配置 以 ChangeTrackingStrategy 用於此實體類型。 此策略顯示上下文如何偵測該實體類型實例屬性的變更。

HasData(Object[])

設定此實體擁有種子資料。 它用於產生資料動態遷移。

HasEntityTypeAnnotation(String, Object)

新增或更新擁有實體類型的註解。 如果已有標註中指定的 annotation 鍵,其值會被更新。

HasForeignKey(String[])

配置屬性作為此關係的外鍵。

若指定的屬性名稱不存在於實體類型中,則會新增一個影子狀態屬性作為外鍵。 影子狀態屬性是指在實體類別中沒有對應屬性的屬性。 屬性的當前值會儲存在實體 ChangeTracker 類別的實例中,而非儲存在實體類別的實例中。

若 HasPrincipalKey(String[]) 未指定,則會嘗試將外鍵屬性的資料型態與順序與主實體類型的主鍵相匹配。 若不匹配,則會新增形成唯一索引的影子狀態屬性,作為參考鍵。

HasForeignKeyAnnotation(String, Object)

新增或更新外鍵上的註解。 如果已有標註中指定的 annotation 鍵,其值會被更新。

HasIndex(String[])

在指定屬性上設定索引。 如果在給定屬性集合上存在現有索引,則該現有索引將被回傳用於配置。

HasKey(String[])

設定構成此擁有實體類型主鍵的屬性。

HasOne(String, String)

配置一個關係,使該實體類型有一個參考,指向該關係中另一個類型的唯一實例。

請注意,呼叫此方法時若無參數,會明確設定此關係的這一端不使用導航屬性,即使實體類型中存在此類屬性。 若要使用導航性質,則必須指定該性質。

呼叫此方法後,你應該串接呼叫至 WithMany(String) 或 WithOne(String) 以完整配置關係。 僅呼叫此方法而不使用鏈式呼叫,將不會產生有效的關聯。

HasOne(Type, String)

配置一個關係,使該實體類型有一個參考,指向該關係中另一個類型的唯一實例。

請注意,呼叫此方法時若無參數,會明確設定此關係的這一端不使用導航屬性,即使實體類型中存在此類屬性。 若要使用導航性質,則必須指定該性質。

呼叫此方法後,你應該串接呼叫至 WithMany(String) 或 WithOne(String) 以完整配置關係。 僅呼叫此方法而不使用鏈式呼叫,將不會產生有效的關聯。

HasPrincipalKey(String[])

配置此關係所針對的獨特屬性。 通常只有當你想使用主鍵以外的屬性作為主要屬性時,才會呼叫此方法。 若指定的屬性尚未是唯一限制(或主鍵),則會引入新的唯一限制。

Ignore(String)

將該屬性排除在實體類型之外。 此方法通常用於移除慣例新增的擁有實體類型中的屬性。

OnDelete(DeleteBehavior)

配置當主體被刪除或關係中斷時,如何對關聯中的相依實體套用刪除操作。

OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

配置一種關係,使此實體類型為關係中的另一類型提供身份認同。

OwnsMany(String, String)

配置一個關係,使目標實體由該實體擁有(或其一部分)。

即使導覽屬於同一類型,每個所有權關係的目標實體類型仍被視為不同的實體類型。 目標實體類型的設定不會套用到其他所有權關係的目標實體類型。

大多數對擁有實體的操作都需要透過擁有者實體使用相應的導航系統存取。

OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

配置一種關係,使此實體類型為關係中的另一類型提供身份認同。

OwnsMany(Type, String)

配置一個關係,使目標實體由該實體擁有(或其一部分)。

即使導覽屬於同一類型,每個所有權關係的目標實體類型仍被視為不同的實體類型。 目標實體類型的設定不會套用到其他所有權關係的目標實體類型。

大多數對擁有實體的操作都需要透過擁有者實體使用相應的導航系統存取。

OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

配置一個關係,使目標實體由該實體擁有(或其一部分)。 目標實體的鍵值總是從其所屬實體傳遞過來。

即使導覽屬於同一類型,每個所有權關係的目標實體類型仍被視為不同的實體類型。 目標實體類型的設定不會套用到其他所有權關係的目標實體類型。

大多數對擁有實體的操作都需要透過擁有者實體使用相應的導航系統存取。

OwnsOne(String, String)

配置一個關係,使目標實體由該實體擁有(或其一部分)。 目標實體的鍵值總是從其所屬實體傳遞過來。

即使導覽屬於同一類型,每個所有權關係的目標實體類型仍被視為不同的實體類型。 目標實體類型的設定不會套用到其他所有權關係的目標實體類型。

大多數對擁有實體的操作都需要透過擁有者實體使用相應的導航系統存取。

OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

配置一個關係,使目標實體由該實體擁有(或其一部分)。 目標實體的鍵值總是從其所屬實體傳遞過來。

即使導覽屬於同一類型,每個所有權關係的目標實體類型仍被視為不同的實體類型。 目標實體類型的設定不會套用到其他所有權關係的目標實體類型。

大多數對擁有實體的操作都需要透過擁有者實體使用相應的導航系統存取。

OwnsOne(Type, String)

配置一個關係,使目標實體由該實體擁有(或其一部分)。 目標實體的鍵值總是從其所屬實體傳遞過來。

即使導覽屬於同一類型,每個所有權關係的目標實體類型仍被視為不同的實體類型。 目標實體類型的設定不會套用到其他所有權關係的目標實體類型。

大多數對擁有實體的操作都需要透過擁有者實體使用相應的導航系統存取。

Property(String)

回傳一個物件,可用於設定擁有實體類型的屬性。 若不存在帶有該名稱的屬性,則會新增一個屬性。

新增帶有此超載的屬性時,物件名稱必須與實體類型中 CLR 屬性或欄位的名稱相符。 此過載無法用來新增影子狀態屬性。

Property(Type, String)

回傳一個物件,可用於設定擁有實體類型的屬性。 若不存在帶有該名稱的屬性,則會新增一個屬性。

新增屬性時,如果實體類別中有同名屬性,該物件會被加入模型中。 若實體類別中不存在屬性,則會新增一個影子狀態屬性。 影子狀態屬性是指在實體類別中沒有對應屬性的屬性。 屬性的當前值會儲存在實體 ChangeTracker 類別的實例中,而非儲存在實體類別的實例中。

Property<TProperty>(String)

回傳一個物件,可用於設定擁有實體類型的屬性。 若不存在帶有該名稱的屬性,則會新增一個屬性。

新增屬性時,如果實體類別中有同名屬性,該物件會被加入模型中。 若實體類別中不存在屬性,則會新增一個影子狀態屬性。 影子狀態屬性是指在實體類別中沒有對應屬性的屬性。 屬性的當前值會儲存在實體 ChangeTracker 類別的實例中,而非儲存在實體類別的實例中。

UsePropertyAccessMode(PropertyAccessMode)

設定 為 PropertyAccessMode 該實體類型的所有屬性所使用。

預設情況下,如果依慣例找到或已指定,則在建構新物件時會使用該欄位,通常是從資料庫查詢實體時。 所有其他進出通道皆使用物業。 呼叫此方法會改變該實體類型所有屬性的行為,如列舉中所述 PropertyAccessMode 。

呼叫此方法會覆蓋該實體類型中所有屬性,該類型中任何已設定的存取模式。

明確介面實作

名稱 Description
IInfrastructure<IMutableModel>.Instance

這段關係所屬的模式。

(繼承來源 ReferenceCollectionBuilderBase)
IInfrastructure<InternalEntityTypeBuilder>.Instance

取得內部建構器用來設定擁有實體類型。

IInfrastructure<InternalRelationshipBuilder>.Instance

取得用來配置此關係的內部建構器。

(繼承來源 ReferenceCollectionBuilderBase)

擴充方法

名稱 Description
ForSqlServerIsMemoryOptimized(CollectionOwnershipBuilder, Boolean)

配置實體在將 SQL Server 定位為記憶體優化時所映射的表格。

GetInfrastructure<T>(IInfrastructure<T>)

從一個被隱藏的屬性中取得價值 IInfrastructure<T>。

此方法通常由資料庫提供者(及其他擴充)使用。 它通常不被用於應用程式程式碼中。

HasConstraintName(CollectionOwnershipBuilder, String)

在針對關聯型資料庫時,配置此關係的外鍵約束名稱。

ToTable(CollectionOwnershipBuilder, String, String)

在針對關聯式資料庫時,配置實體所對應的視圖或資料表。

ToTable(CollectionOwnershipBuilder, String)

在針對關聯式資料庫時,配置實體所對應的視圖或資料表。

適用於