IModel 介面

定義

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

public interface IModel : Microsoft.EntityFrameworkCore.Infrastructure.IAnnotatable
public interface IModel : Microsoft.EntityFrameworkCore.Infrastructure.IAnnotatable, Microsoft.EntityFrameworkCore.Metadata.IReadOnlyModel
type IModel = interface
    interface IAnnotatable
type IModel = interface
    interface IReadOnlyModel
    interface IReadOnlyAnnotatable
    interface IAnnotatable
Public Interface IModel
Implements IAnnotatable
Public Interface IModel
Implements IAnnotatable, IReadOnlyModel
衍生
實作

備註

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

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

屬性

Item[String]

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

(繼承來源 IReadOnlyAnnotatable)
ModelDependencies

執行時間服務相依性。

ModelId

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

(繼承來源 IReadOnlyModel)

方法

AddRuntimeAnnotation(String, Object)

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

(繼承來源 IAnnotatable)
AnnotationsToDebugString(Int32)

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

(繼承來源 IReadOnlyAnnotatable)
FindAnnotation(String)

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

(繼承來源 IReadOnlyAnnotatable)
FindEntityType(String)

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

FindEntityType(String, String, IEntityType)

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

FindEntityType(String, String, IReadOnlyEntityType)

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

(繼承來源 IReadOnlyModel)
FindEntityType(Type)

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

FindEntityType(Type, String, IEntityType)

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

FindEntityType(Type, String, IReadOnlyEntityType)

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

(繼承來源 IReadOnlyModel)
FindEntityTypes(Type)

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

FindLeastDerivedEntityTypes(Type, Func<IReadOnlyEntityType,Boolean>)

傳回對應至指定中最小衍生型別的實體型別。

FindRuntimeAnnotation(String)

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

(繼承來源 IAnnotatable)
FindRuntimeAnnotationValue(String)

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

(繼承來源 IAnnotatable)
FindRuntimeEntityType(Type)

取得對應指定實體類別的實體,其中 類別可能是衍生自實際實體類型的 Proxy。 null如果找不到具有指定 CLR 類型的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

FindTypeMappingConfiguration(Type)

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

GetAnnotation(String)

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

(繼承來源 IReadOnlyAnnotatable)
GetAnnotations()

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

(繼承來源 IReadOnlyAnnotatable)
GetChangeTrackingStrategy()

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

(繼承來源 IReadOnlyModel)
GetEntityTypes()

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

GetModelDependencies()

取得執行時間服務相依性。

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

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

(繼承來源 IAnnotatable)
GetProductVersion()

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

(繼承來源 IReadOnlyModel)
GetPropertyAccessMode()

PropertyAccessMode取得用於這個模型中實體類型屬性的 。

(繼承來源 IReadOnlyModel)
GetRuntimeAnnotations()

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

(繼承來源 IAnnotatable)
GetTypeMappingConfigurations()

取得所有預先慣例組態。

IsIndexerMethod(MethodInfo)

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

IsShared(Type)

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

(繼承來源 IReadOnlyModel)
RemoveRuntimeAnnotation(String)

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

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

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

(繼承來源 IAnnotatable)
ToDebugString(MetadataDebugStringOptions, Int32)

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

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

(繼承來源 IReadOnlyModel)

擴充方法

GetDefaultContainer(IModel)

傳回預設容器名稱。

GetDefaultContainer(IReadOnlyModel)

傳回預設容器名稱。

GetThroughput(IReadOnlyModel)

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

AnnotationsToDebugString(IAnnotatable, Int32)

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

GetAnnotation(IAnnotatable, String)

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

GetRelationalDependencies(IModel, String)

傳回關聯式服務相依性。

Scaffolding(IModel)

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

FindEntityType(IModel, Type)
已過時。.

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

FindEntityType(IModel, Type, String, IEntityType)

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

FindRuntimeEntityType(IModel, Type)

取得對應指定實體類別的實體,其中 類別可能是衍生自實際實體類型的 Proxy。 null如果找不到具有指定 CLR 類型的實體類型,或共用類型實體類型正在使用指定的 CLR 類型,或實體類型具有定義導覽,則傳回 。

GetChangeTrackingStrategy(IModel)

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

GetEntityTypes(IModel, String)
已過時。.

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

GetEntityTypes(IModel, Type)
已過時。.

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

GetProductVersion(IModel)

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

GetPropertyAccessMode(IModel)

PropertyAccessMode取得用於這個模型中實體類型屬性的 。

請注意,個別實體類型可以覆寫此存取模式,而實體類型的個別屬性可以覆寫實體類型上設定的存取模式。 此處傳回的值將用於未指定覆寫的任何屬性。

HasEntityTypeWithDefiningNavigation(IModel, String)
已過時。.

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

HasEntityTypeWithDefiningNavigation(IModel, Type)
已過時。.

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

IsIndexerMethod(IModel, MethodInfo)

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

IsShared(IModel, Type)

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

ToDebugString(IModel, MetadataDebugStringOptions, Int32)

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

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

Relational(IModel)

取得模型的關係資料庫特定中繼資料。

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 呼叫。

Sqlite(IModel)

取得模型的 SQLite 特定中繼資料。

SqlServer(IModel)

取得模型的特定中繼資料SQL Server。

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傳回要用於模型中索引鍵屬性的 ,除非屬性已明確設定策略。

適用於