RuntimeModel 類別

定義

實體圖形、實體之間的關聯性,以及它們如何對應至資料庫的中繼資料。 模型通常是藉由覆 OnModelCreating(ModelBuilder) 寫衍生 DbContext 上的 方法所建立。

public class RuntimeModel : Microsoft.EntityFrameworkCore.Infrastructure.AnnotatableBase, Microsoft.EntityFrameworkCore.Metadata.Internal.IRuntimeModel
type RuntimeModel = class
    inherit AnnotatableBase
    interface IRuntimeModel
    interface IModel
    interface IReadOnlyModel
    interface IReadOnlyAnnotatable
    interface IAnnotatable
Public Class RuntimeModel
Inherits AnnotatableBase
Implements IRuntimeModel
繼承
RuntimeModel
實作
IAnnotatable IReadOnlyAnnotatable IModel Microsoft.EntityFrameworkCore.Metadata.Internal.IRuntimeModel IReadOnlyModel

備註

這是從建置模型建構的輕量型實作,不打算在設計階段使用。

服務存留期為 Scoped 。 這表示每個 DbContext 實例都會使用此服務自己的實例。 實作可能相依于任何存留期註冊的其他服務。 實作不需要安全線程。

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

建構函式

RuntimeModel()

實體圖形、實體之間的關聯性,以及它們如何對應至資料庫的中繼資料。 模型通常是藉由覆 OnModelCreating(ModelBuilder) 寫衍生 DbContext 上的 方法所建立。

屬性

DebugView

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

IsReadOnly

指出目前物件是否為唯讀。

(繼承來源 AnnotatableBase)
Item[String]

取得具有指定名稱的值批註,如果不存在,則 null 傳回 。

(繼承來源 AnnotatableBase)
ModelId

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

方法

AddAnnotation(String, Annotation)

將注釋加入至這個物件。 如果具有指定名稱的注釋已經存在,則會擲回 。

(繼承來源 AnnotatableBase)
AddAnnotation(String, Object)

將注釋加入至這個物件。 如果具有指定名稱的注釋已經存在,則會擲回 。

(繼承來源 AnnotatableBase)
AddAnnotations(IEnumerable<IAnnotation>)

將批註加入至這個 物件。

(繼承來源 AnnotatableBase)
AddAnnotations(IReadOnlyDictionary<String,Object>)

將批註加入至這個 物件。

(繼承來源 AnnotatableBase)
AddEntityType(String, Type, RuntimeEntityType, Boolean, String, ChangeTrackingStrategy, PropertyInfo, Boolean)

將具有定義導覽的實體類型加入至模型。

AddEntityType(String, Type, RuntimeEntityType, Boolean, String, ChangeTrackingStrategy, PropertyInfo, Boolean, Object)

將具有定義導覽的實體類型加入至模型。

AddRuntimeAnnotation(String, Annotation)

將執行時間批註新增至這個 物件。 如果具有指定名稱的注釋已經存在,則會擲回 。

(繼承來源 AnnotatableBase)
AddRuntimeAnnotation(String, Object)

將執行時間批註新增至這個 物件。 如果具有指定名稱的注釋已經存在,則會擲回 。

(繼承來源 AnnotatableBase)
AddRuntimeAnnotations(IEnumerable<Annotation>)

將執行時間批註新增至這個 物件。

(繼承來源 AnnotatableBase)
AddRuntimeAnnotations(IReadOnlyDictionary<String,Object>)

將執行時間批註新增至這個 物件。

(繼承來源 AnnotatableBase)
AddTypeMappingConfiguration(Type, Nullable<Int32>, Nullable<Boolean>, Nullable<Int32>, Nullable<Int32>, Type, ValueConverter)

新增純量類型的組態。

CreateAnnotation(String, Object)

建立新的批註。

(繼承來源 AnnotatableBase)
CreateRuntimeAnnotation(String, Object)

建立新的執行時間批註。

(繼承來源 AnnotatableBase)
EnsureMutable()

如果模型是唯讀的,則會擲回 。

(繼承來源 AnnotatableBase)
EnsureReadOnly()

如果模型不是唯讀,則會擲回 。

(繼承來源 AnnotatableBase)
FindAdHocEntityType(Type)

取得具有指定名稱的實體類型。 null如果沒有具有指定名稱的實體類型已對應為臨機操作類型,則傳回 。

FindAnnotation(String)

取得具有指定名稱的注釋,如果不存在,則傳 null 回 。

(繼承來源 AnnotatableBase)
FindEntityType(String)

取得具有指定名稱的實體類型。 null如果找不到具有指定名稱的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

FindRuntimeAnnotation(String)

取得具有指定名稱的執行時間批註,如果不存在,則 null 傳回 。

(繼承來源 AnnotatableBase)
GetAdHocEntityTypes()

取得模型中定義的所有臨機操作實體類型。

GetAnnotation(String)

取得具有指定名稱的注釋,如果不存在,則會擲回。

(繼承來源 AnnotatableBase)
GetAnnotations()

取得目前 物件上的所有批註。

(繼承來源 AnnotatableBase)
GetOrAddAdHocEntityType(RuntimeEntityType)

將臨機操作實體類型新增至模型。

GetOrAddRuntimeAnnotationValue<TValue,TArg>(String, Func<TArg,TValue>, TArg)

取得具有指定名稱的執行時間批註值,如果不存在,請加以新增。

(繼承來源 AnnotatableBase)
GetRuntimeAnnotations()

取得目前 物件上的所有執行時間批註。

(繼承來源 AnnotatableBase)
OnAnnotationSet(String, Annotation, Annotation)

設定或移除注釋時呼叫。

(繼承來源 AnnotatableBase)
RemoveAnnotation(String)

從這個 物件中移除指定的批註。

(繼承來源 AnnotatableBase)
RemoveRuntimeAnnotation(String)

從這個 物件中移除指定的執行時間批註。

(繼承來源 AnnotatableBase)
SetAnnotation(String, Annotation, Annotation)

設定儲存在指定索引鍵底下的批註。 如果具有指定名稱的注釋已經存在,則會覆寫現有的批註。

(繼承來源 AnnotatableBase)
SetAnnotation(String, Object)

設定儲存在指定索引鍵底下的批註。 如果具有指定名稱的注釋已經存在,則會覆寫現有的批註。

(繼承來源 AnnotatableBase)
SetRuntimeAnnotation(String, Annotation, Annotation)

設定儲存在指定索引鍵底下的執行時間批註。 如果具有指定名稱的注釋已經存在,則會覆寫現有的批註。

(繼承來源 AnnotatableBase)
SetRuntimeAnnotation(String, Object)

設定儲存在指定索引鍵底下的執行時間批註。 如果具有指定名稱的注釋已經存在,則會覆寫現有的批註。

(繼承來源 AnnotatableBase)
SetSkipDetectChanges(Boolean)

設定值,指出是否 DetectChanges() 應該呼叫。

明確介面實作

IAnnotatable.AddRuntimeAnnotation(String, Object)

將執行時間批註新增至這個 物件。 如果具有指定名稱的注釋已經存在,則會擲回 。

(繼承來源 AnnotatableBase)
IAnnotatable.FindRuntimeAnnotation(String)

取得具有指定名稱的執行時間批註,如果不存在,則 null 傳回 。

(繼承來源 AnnotatableBase)
IAnnotatable.GetRuntimeAnnotations()

取得目前 物件上的所有執行時間批註。

(繼承來源 AnnotatableBase)
IAnnotatable.RemoveRuntimeAnnotation(String)

從這個 物件中移除指定的執行時間批註。

(繼承來源 AnnotatableBase)
IAnnotatable.SetRuntimeAnnotation(String, Object)

設定儲存在指定索引鍵底下的執行時間批註。 如果具有指定名稱的注釋已經存在,則會覆寫現有的批註。

(繼承來源 AnnotatableBase)
IModel.FindEntityType(String)

取得具有指定名稱的實體。 null如果找不到具有指定名稱的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

IModel.FindEntityType(String, String, IEntityType)

取得指定名稱的實體類型,定義導覽名稱和定義實體類型。 如果找不到相符的實體類型,則傳 null 回 。

IModel.FindEntityType(Type)

取得對應指定實體類別的實體。 null如果找不到具有指定 CLR 類型的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

IModel.FindEntityTypes(Type)

取得符合指定型別的實體類型。

IModel.FindTypeMappingConfiguration(Type)

尋找指定純量 Type 的預先慣例組態。

IModel.GetEntityTypes()

取得模型中定義的所有實體類型。

IModel.GetTypeMappingConfigurations()

取得所有預先慣例組態。

IModel.IsIndexerMethod(MethodInfo)

取得值,指出指定的 MethodInfo 是否代表索引子存取。

IReadOnlyAnnotatable.FindAnnotation(String)

取得具有指定名稱的注釋,如果不存在,則傳 null 回 。

(繼承來源 AnnotatableBase)
IReadOnlyAnnotatable.GetAnnotations()

取得目前 物件上的所有批註。

(繼承來源 AnnotatableBase)
IReadOnlyAnnotatable.Item[String]

取得具有指定名稱之注釋的值,如果不存在,則傳 null 回 。

(繼承來源 AnnotatableBase)
IReadOnlyModel.FindEntityType(String)

取得具有指定名稱的實體類型。 null如果找不到具有指定名稱的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

IReadOnlyModel.FindEntityType(String, String, IReadOnlyEntityType)

取得指定基底名稱的實體類型,定義導覽名稱和定義實體類型。 如果找不到相符的實體類型,則傳 null 回 。

IReadOnlyModel.FindEntityType(Type)

取得對應指定實體類別的實體。 null如果找不到具有指定 CLR 類型的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

IReadOnlyModel.FindEntityType(Type, String, IReadOnlyEntityType)

取得指定型別的實體類型,定義導覽名稱和定義實體類型。 如果找不到相符的實體類型,則傳 null 回 。

IReadOnlyModel.FindEntityTypes(Type)

取得符合指定型別的實體類型。

IReadOnlyModel.GetChangeTrackingStrategy()

取得用於模型中實體的預設變更追蹤策略。 此策略指出內容如何偵測實體類型實例的屬性變更。

IReadOnlyModel.GetEntityTypes()

取得模型中定義的所有實體類型。

IReadOnlyModel.GetPropertyAccessMode()

PropertyAccessMode取得用於此模型中實體型別屬性的 。

IReadOnlyModel.IsShared(Type)

取得值,指出模型中的共用類型實體是否使用 CLR 類型。

IReadOnlyModel.ModelId

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

IRuntimeModel.RelationalModel

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

IRuntimeModel.SkipDetectChanges

實體圖形、實體之間的關聯性,以及它們如何對應至資料庫的中繼資料。 模型通常是藉由覆 OnModelCreating(ModelBuilder) 寫衍生 DbContext 上的 方法所建立。

擴充方法

GetDefaultContainer(IModel)

傳回預設容器名稱。

GetDefaultContainer(IReadOnlyModel)

傳回預設容器名稱。

GetThroughput(IReadOnlyModel)

傳回資料庫範圍中布建的輸送量。

AnnotationsToDebugString(IAnnotatable, Int32)

取得 物件上宣告之所有注釋的偵錯字串。

GetRelationalDependencies(IModel, String)

傳回關聯式服務相依性。

FindEntityType(IModel, Type)
已過時。.

取得對應指定實體類別的實體。 null如果找不到具有指定 CLR 類型的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

GetEntityTypes(IModel, String)
已過時。.

取得符合指定名稱的實體類型。

GetEntityTypes(IModel, Type)
已過時。.

取得符合指定型別的實體類型。

GetProductVersion(IModel)

取得用來建置此模型的 EF Core 元件版本

HasEntityTypeWithDefiningNavigation(IModel, String)
已過時。.

取得值,指出模型是否包含具有定義導覽的對應實體類型。

HasEntityTypeWithDefiningNavigation(IModel, Type)
已過時。.

取得值,指出模型是否包含具有定義導覽的對應實體類型。

IsIndexerMethod(IModel, MethodInfo)

取得值,指出指定的 MethodInfo 是否重新指定索引子存取。

IsShared(IModel, Type)

取得模型中的共用類型實體是否使用 CLR 類型。

ToDebugString(IModel, MetadataDebugStringOptions, Int32)

建立人類可讀取的指定中繼資料標記法。

警告:請勿依賴傳回字串的格式。 它是專為偵錯而設計,而且可能會在發行之間任意變更。

FindDbFunction(IModel, MethodInfo)

尋找對應至指定 MethodInfo 所表示之 方法的函式。

FindDbFunction(IModel, String)

尋找對應至指定名稱所表示之方法的函式。

FindDbFunction(IReadOnlyModel, MethodInfo)

尋找對應至指定 MethodInfo 所表示之 方法的函式。

FindDbFunction(IReadOnlyModel, String)

尋找對應至指定名稱所表示之方法的函式。

FindSequence(IModel, String, String)

尋找具有指定名稱的序列。

FindSequence(IReadOnlyModel, String, String)

尋找具有指定名稱的序列。

GetCollation(IModel)

傳回資料庫定序。

GetCollation(IReadOnlyModel)

傳回資料庫定序。

GetDbFunctions(IModel)

傳回模型中包含的所有函式。

GetDbFunctions(IReadOnlyModel)

傳回模型中包含的所有函式。

GetDefaultSchema(IModel)

傳回要用於模型的預設架構,如果沒有設定,則 null 傳回 。

GetDefaultSchema(IReadOnlyModel)

傳回要用於模型的預設架構,如果沒有設定,則 null 傳回 。

GetMaxIdentifierLength(IModel)

傳回存放區識別碼允許的最大長度。

GetMaxIdentifierLength(IReadOnlyModel)

傳回存放區識別碼允許的最大長度。

GetRelationalModel(IModel)

傳回資料庫模型。

GetSequences(IModel)

傳回模型中包含的所有序列。

GetSequences(IReadOnlyModel)

傳回模型中包含的所有序列。

GetFluentApiCalls(IModel, IAnnotationCodeGenerator)

取得用來設定模型的 Fluent API 呼叫。

GetDatabaseMaxSize(IModel)

傳回資料庫的大小上限。

GetDatabaseMaxSize(IReadOnlyModel)

傳回資料庫的大小上限。

GetHiLoSequenceName(IModel)

傳回要用於預設 hi-lo 序列的名稱。

GetHiLoSequenceName(IReadOnlyModel)

傳回要用於預設 hi-lo 序列的名稱。

GetHiLoSequenceSchema(IModel)

傳回要用於預設 hi-lo 序列的架構。 UseHiLo(PropertyBuilder, String, String)

GetHiLoSequenceSchema(IReadOnlyModel)

傳回要用於預設 hi-lo 序列的架構。 UseHiLo(PropertyBuilder, String, String)

GetIdentityIncrement(IModel)

傳回預設識別增量。

GetIdentityIncrement(IReadOnlyModel)

傳回預設識別增量。

GetIdentitySeed(IModel)

傳回預設身分識別種子。

GetIdentitySeed(IReadOnlyModel)

傳回預設身分識別種子。

GetPerformanceLevelSql(IModel)

傳回資料庫的效能層級。

GetPerformanceLevelSql(IReadOnlyModel)

傳回資料庫的效能層級。

GetSequenceNameSuffix(IReadOnlyModel)

傳回要附加至自動建立序列名稱的後置詞。

GetSequenceSchema(IReadOnlyModel)

傳回要用於預設值產生序列的架構。 UseSequence(PropertyBuilder, String, String)

GetServiceTierSql(IModel)

傳回資料庫的服務層級。

GetServiceTierSql(IReadOnlyModel)

傳回資料庫的服務層級。

GetValueGenerationStrategy(IModel)

SqlServerValueGenerationStrategy傳回要用於模型中索引鍵屬性的 ,除非屬性已明確設定策略。

GetValueGenerationStrategy(IReadOnlyModel)

SqlServerValueGenerationStrategy傳回要用於模型中索引鍵屬性的 ,除非屬性已明確設定策略。

適用於