ReferenceOwnershipBuilder 類別

定義

提供簡單的 API 來設定一對一擁有權。

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

建構函式

ReferenceOwnershipBuilder(EntityType, EntityType, InternalRelationshipBuilder)

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

ReferenceOwnershipBuilder(InternalRelationshipBuilder, ReferenceOwnershipBuilder, Boolean, Boolean, Boolean, Boolean)

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

屬性

Builder

取得用來設定此關聯性的內部產生器。

(繼承來源 ReferenceReferenceBuilderBase)
DeclaringEntityType

取得用來設定此關聯性的第一個實體類型。

(繼承來源 ReferenceReferenceBuilderBase)
Metadata

表示這個關聯性的外鍵。

(繼承來源 ReferenceReferenceBuilderBase)
OwnedEntityType

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

RelatedEntityType

取得用來設定此關聯性的第二個實體類型。

(繼承來源 ReferenceReferenceBuilderBase)

方法

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[])

設定屬性 () 做為此關聯性的外鍵。

如果實體類型上沒有指定的屬性名稱 () ,則會新增新的陰影狀態屬性 (s) 作為外鍵。 陰影狀態屬性是實體類別中沒有對應屬性的屬性。 屬性的目前值會儲存在 中 ChangeTracker ,而不是儲存在實體類別的實例中。

如果未 HasPrincipalKey(String[]) 指定 ,則會嘗試比對主體實體類型主鍵的資料類型和外鍵屬性順序。 如果它們不相符,形成唯一索引的新陰影狀態屬性將會新增至主體實體類型,做為參考索引鍵。

HasForeignKeyAnnotation(String, Object)

在外鍵上新增或更新注釋。 如果中 annotation 指定索引鍵的注釋已經存在,則會更新其值。

HasIndex(String[])

在指定的屬性上設定索引。 如果給定的屬性集上有現有的索引,則會傳回現有的索引以進行設定。

HasKey(String[])

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

HasMany(String, String)

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

請注意,即使實體類型上存在這類屬性,沒有參數呼叫這個方法,仍會明確地將關聯性的這個端設定為不使用導覽屬性。 如果要使用導覽屬性,則必須指定它。

呼叫此方法之後,您應該鏈結對 的 WithOne(String) 呼叫,以完整設定關聯性。 只要呼叫這個方法而沒有鏈結呼叫,就不會產生有效的關聯性。

HasMany(Type, String)

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

請注意,即使實體類型上存在這類屬性,沒有參數呼叫這個方法,仍會明確地將關聯性的這個端設定為不使用導覽屬性。 如果要使用導覽屬性,則必須指定它。

呼叫此方法之後,您應該鏈結對 的 WithOne(String) 呼叫,以完整設定關聯性。 只要呼叫這個方法而沒有鏈結呼叫,就不會產生有效的關聯性。

HasOne(String, String)

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

請注意,即使實體類型上存在這類屬性,沒有參數呼叫這個方法,仍會明確地將關聯性的這個端設定為不使用導覽屬性。 如果要使用導覽屬性,則必須指定它。

呼叫此方法之後,您應該鏈結對 WithMany(String)WithOne(String) 的呼叫,以完整設定關聯性。 只要呼叫這個方法而沒有鏈結呼叫,就不會產生有效的關聯性。

HasOne(Type, String)

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

請注意,即使實體類型上存在這類屬性,沒有參數呼叫這個方法,仍會明確地將關聯性的這個端設定為不使用導覽屬性。 如果要使用導覽屬性,則必須指定它。

呼叫此方法之後,您應該鏈結對 WithMany(String)WithOne(String) 的呼叫,以完整設定關聯性。 只要呼叫這個方法而沒有鏈結呼叫,就不會產生有效的關聯性。

HasPrincipalKey(String[])

設定這個關聯性目標的唯一屬性 () ,也就是在擁有者實體類型上。 通常,如果您想要使用主鍵以外的屬性 () 做為主體屬性, (s) ,您通常會呼叫這個方法。 如果指定的屬性 () 尚未是唯一條件約束 (或主鍵) ,則會導入新的唯一條件約束。

Ignore(String)

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

OnDelete(DeleteBehavior)

設定刪除主體或中斷關聯性時,刪除作業如何套用至關聯性中的相依實體。

OwnsMany(String, String)

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

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

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

OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

設定關聯性,其中這個實體類型會將身分識別提供給關聯性中的其他類型。

OwnsMany(Type, String)

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

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

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

OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

設定關聯性,其中這個實體類型會將身分識別提供給關聯性中的其他類型。

OwnsOne(String, String)

設定關聯性,其中目標實體是由 (或) 此實體的一部分所擁有。 目標實體索引鍵值一律會從它所屬的實體傳播。

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

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

OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

設定關聯性,其中目標實體是由 (或) 此實體的一部分所擁有。 目標實體索引鍵值一律會從它所屬的實體傳播。

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

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

OwnsOne(Type, String)

設定關聯性,其中目標實體是由 (或) 此實體的一部分所擁有。 目標實體索引鍵值一律會從它所屬的實體傳播。

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

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

OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

設定關聯性,其中目標實體是由 (或) 此實體的一部分所擁有。 目標實體索引鍵值一律會從它所屬的實體傳播。

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

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

Property(String)

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

使用這個多載新增屬性時,屬性名稱必須符合實體類型上 CLR 屬性或欄位的名稱。 這個多載無法用來新增陰影狀態屬性。

Property(Type, String)

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

新增屬性時,如果具有相同名稱的屬性存在於實體類別中,則會將它新增至模型。 如果實體類別中沒有任何屬性存在,則會新增新的陰影狀態屬性。 陰影狀態屬性是實體類別中沒有對應屬性的屬性。 屬性的目前值會儲存在 中 ChangeTracker ,而不是儲存在實體類別的實例中。

Property<TProperty>(String)

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

新增屬性時,如果實體類別中有相同名稱的屬性,則會將其新增至模型。 如果實體類別中沒有任何屬性存在,則會加入新的陰影狀態屬性。 陰影狀態屬性是實體類別中沒有對應屬性的屬性。 屬性的目前值會儲存在 中 ChangeTracker ,而不是儲存在實體類別的實例中。

UsePropertyAccessMode(PropertyAccessMode)

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

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

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

明確介面實作

IInfrastructure<IMutableModel>.Instance

這個關聯性所屬的模型。

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

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

IInfrastructure<InternalRelationshipBuilder>.Instance

取得用來設定此關聯性的內部產生器。

(繼承來源 ReferenceReferenceBuilderBase)

擴充方法

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasConstraintName(ReferenceOwnershipBuilder, String)

以關係資料庫為目標時,設定此關聯性的外鍵條件約束名稱。

ToTable(ReferenceOwnershipBuilder, String)

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

ToTable(ReferenceOwnershipBuilder, String, String)

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

ForSqlServerIsMemoryOptimized(ReferenceOwnershipBuilder, Boolean)

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

適用於