ReferenceOwnershipBuilder<TEntity,TRelatedEntity> 類別

定義

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

public class ReferenceOwnershipBuilder<TEntity,TRelatedEntity> : Microsoft.EntityFrameworkCore.Metadata.Builders.ReferenceOwnershipBuilder where TEntity : class where TRelatedEntity : class
type ReferenceOwnershipBuilder<'Entity, 'RelatedEntity (requires 'Entity : null and 'RelatedEntity : null)> = class
    inherit ReferenceOwnershipBuilder
Public Class ReferenceOwnershipBuilder(Of TEntity, TRelatedEntity)
Inherits ReferenceOwnershipBuilder

類型參數

TEntity
TRelatedEntity
繼承
ReferenceOwnershipBuilder<TEntity,TRelatedEntity>

建構函式

ReferenceOwnershipBuilder<TEntity,TRelatedEntity>(EntityType, EntityType, InternalRelationshipBuilder)

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

ReferenceOwnershipBuilder<TEntity,TRelatedEntity>(InternalRelationshipBuilder, ReferenceOwnershipBuilder, Boolean, Boolean, Boolean, Boolean)

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

屬性

Builder

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

(繼承來源 ReferenceReferenceBuilderBase)
DeclaringEntityType

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

(繼承來源 ReferenceReferenceBuilderBase)
Metadata

表示這個關聯性的外鍵。

(繼承來源 ReferenceReferenceBuilderBase)
OwnedEntityType

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

(繼承來源 ReferenceOwnershipBuilder)
RelatedEntityType

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

(繼承來源 ReferenceReferenceBuilderBase)

方法

FindRelatedEntityType(String, String)

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

(繼承來源 ReferenceOwnershipBuilder)
FindRelatedEntityType(Type, String)

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

(繼承來源 ReferenceOwnershipBuilder)
HasChangeTrackingStrategy(ChangeTrackingStrategy)

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

HasData(Object[])

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

HasData(Object[])

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

(繼承來源 ReferenceOwnershipBuilder)
HasData(TRelatedEntity[])

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

HasEntityTypeAnnotation(String, Object)

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

HasForeignKey(Expression<Func<TRelatedEntity,Object>>)

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

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

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

HasForeignKey(String[])

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

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

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

HasForeignKeyAnnotation(String, Object)

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

HasIndex(Expression<Func<TRelatedEntity,Object>>)

在指定的屬性上設定索引。 如果給定的屬性集上有現有的索引,則會傳回現有的索引以供組態使用。

HasIndex(String[])

在指定的屬性上設定索引。 如果給定的屬性集上有現有的索引,則會傳回現有的索引以供組態使用。

(繼承來源 ReferenceOwnershipBuilder)
HasKey(Expression<Func<TRelatedEntity,Object>>)

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

HasKey(String[])

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

(繼承來源 ReferenceOwnershipBuilder)
HasMany(String, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
HasMany(Type, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
HasMany<TNewRelatedEntity>(Expression<Func<TRelatedEntity,IEnumerable<TNewRelatedEntity>>>)

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

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

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

HasOne(String, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
HasOne(Type, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
HasOne<TNewRelatedEntity>(Expression<Func<TRelatedEntity,TNewRelatedEntity>>)

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

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

呼叫這個方法之後,您應該鏈結對 WithMany(Expression<Func<TRelatedEntity,IEnumerable<TEntity>>>)WithOne(Expression<Func<TRelatedEntity,TEntity>>) 的呼叫,以完整設定關聯性。 只要呼叫這個沒有鏈結呼叫的方法,就不會產生有效的關聯性。

HasOne<TNewRelatedEntity>(String)

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

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

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

HasPrincipalKey(Expression<Func<TEntity,Object>>)

設定這個關聯性目標 (唯一屬性) 。 通常,如果您想要使用主鍵以外的屬性 () 做為主體屬性, (s) ,則只會呼叫這個方法。 如果指定的屬性 () 不是唯一條件約束 (或主鍵) ,則會導入新的唯一條件約束。

HasPrincipalKey(String[])

設定這個關聯性目標 (唯一屬性) 。 通常,如果您想要使用主鍵以外的屬性 () 做為主體屬性, (s) ,則只會呼叫這個方法。 如果指定的屬性 () 不是唯一條件約束 (或主鍵) ,則會導入新的唯一條件約束。

Ignore(Expression<Func<TRelatedEntity,Object>>)

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

Ignore(String)

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

OnDelete(DeleteBehavior)

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

OwnsMany(String, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsMany(String, String, Action<CollectionOwnershipBuilder>)

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsMany(Type, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsMany(Type, String, Action<CollectionOwnershipBuilder>)

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsMany<TDependentEntity>(Expression<Func<TRelatedEntity,IEnumerable<TDependentEntity>>>)

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

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

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

OwnsMany<TDependentEntity>(Expression<Func<TRelatedEntity,IEnumerable<TDependentEntity>>>, Action<CollectionOwnershipBuilder<TRelatedEntity,TDependentEntity>>)

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

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

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

OwnsMany<TDependentEntity>(String)

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

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

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

OwnsMany<TDependentEntity>(String, Action<CollectionOwnershipBuilder<TRelatedEntity,TDependentEntity>>)

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

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

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

OwnsOne(String, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsOne(String, String, Action<ReferenceOwnershipBuilder>)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsOne(Type, String)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsOne(Type, String, Action<ReferenceOwnershipBuilder>)

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

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

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

(繼承來源 ReferenceOwnershipBuilder)
OwnsOne<TNewRelatedEntity>(Expression<Func<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

OwnsOne<TNewRelatedEntity>(Expression<Func<TRelatedEntity,TNewRelatedEntity>>, Action<ReferenceOwnershipBuilder<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

OwnsOne<TNewRelatedEntity>(String)

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

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

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

OwnsOne<TNewRelatedEntity>(String, Action<ReferenceOwnershipBuilder<TRelatedEntity,TNewRelatedEntity>>)

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

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

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

Property(String)

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

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

(繼承來源 ReferenceOwnershipBuilder)
Property(Type, String)

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

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

(繼承來源 ReferenceOwnershipBuilder)
Property<TProperty>(Expression<Func<TRelatedEntity,TProperty>>)

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

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

Property<TProperty>(String)

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

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

(繼承來源 ReferenceOwnershipBuilder)
UsePropertyAccessMode(PropertyAccessMode)

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

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

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

明確介面實作

IInfrastructure<IMutableModel>.Instance

這個關聯性所屬的模型。

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

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

(繼承來源 ReferenceOwnershipBuilder)
IInfrastructure<InternalRelationshipBuilder>.Instance

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

(繼承來源 ReferenceReferenceBuilderBase)

擴充方法

GetInfrastructure<T>(IInfrastructure<T>)

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

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

HasConstraintName(ReferenceOwnershipBuilder, String)

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

HasConstraintName<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, String)

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

ToTable(ReferenceOwnershipBuilder, String)

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

ToTable(ReferenceOwnershipBuilder, String, String)

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

ToTable<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, String)

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

ToTable<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, String, String)

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

ForSqlServerIsMemoryOptimized(ReferenceOwnershipBuilder, Boolean)

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

ForSqlServerIsMemoryOptimized<TEntity,TRelatedEntity>(ReferenceOwnershipBuilder<TEntity,TRelatedEntity>, Boolean)

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

適用於