ModelBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供簡單的 API 介面,可用來 IMutableModel 設定 ,以定義實體的形狀、實體之間的關聯性,以及它們如何對應至資料庫。
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder>
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
type ModelBuilder = class
interface IInfrastructure<InternalModelBuilder>
type ModelBuilder = class
interface IInfrastructure<IConventionModelBuilder>
Public Class ModelBuilder
Implements IInfrastructure(Of InternalModelBuilder)
Public Class ModelBuilder
Implements IInfrastructure(Of IConventionModelBuilder)
- 繼承
-
ModelBuilder
- 實作
-
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>
備註
您可以 ModelBuilder 藉由在衍生內容上覆 OnModelCreating(ModelBuilder) 寫來建構內容的模型。 或者,您也可以在外部建立模型,並在傳遞至內容建構函式的實例上 DbContextOptions 設定模型。
如需詳細資訊和範例,請參閱 在 EF Core 中建立實體類型和關聯性的模型 。
建構函式
ModelBuilder() |
不使用慣例, ModelBuilder 初始化 類別的新實例。 警告:建置正確的模型需要慣例。 |
ModelBuilder(ConventionSet) |
初始化 類別的新實例,這個實例 ModelBuilder 將套用一組慣例。 |
ModelBuilder(ConventionSet, ModelDependencies) |
初始化 類別的新實例,這個實例 ModelBuilder 將套用一組慣例。 |
ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration) |
這是支援 Entity Framework Core 基礎結構的內部 API,不受與公用 API 相同的相容性標準。 它可能會在任何版本中變更或移除,而不會有任何通知。 您應該只在程式碼中直接使用它,並知道這麼做可能會導致應用程式在更新至新的 Entity Framework Core 版本時失敗。 |
ModelBuilder(IMutableModel) |
已淘汰.
這是支援 Entity Framework Core 基礎結構的內部 API,不受與公用 API 相同的相容性標準。 它可能會在任何版本中變更或移除,而不會有任何通知。 您應該只在程式碼中直接使用它,並知道這麼做可能會導致應用程式在更新至新的 Entity Framework Core 版本時失敗。 |
屬性
Model |
正在設定的模型。 |
方法
ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>) |
套用實例中 IEntityTypeConfiguration<TEntity> 定義的組態。 |
ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>) |
已淘汰.
套用實例中 IQueryTypeConfiguration<TQuery> 定義的組態。 |
ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>) |
從提供元件中定義的所有 IEntityTypeConfiguration<TEntity> 實例套用組態。 |
Entity(String) |
傳回物件,這個物件可用來在模型中設定指定的實體類型。 如果具有所提供名稱的實體類型尚未屬於模型,則會將沒有對應 CLR 類型的新實體類型新增至模型。 |
Entity(String, Action<EntityTypeBuilder>) |
在模型中執行指定實體類型的組態。 如果具有所提供名稱的實體類型尚未屬於模型,則會將沒有對應 CLR 類型的新實體類型新增至模型。 |
Entity(Type) |
傳回物件,這個物件可用來在模型中設定指定的實體類型。 如果實體類型還不是模型的一部分,則會將它新增至模型。 |
Entity(Type, Action<EntityTypeBuilder>) |
在模型中執行指定實體類型的組態。 如果實體類型還不是模型的一部分,則會將它新增至模型。 |
Entity<TEntity>() |
傳回物件,這個物件可用來在模型中設定指定的實體類型。 如果實體類型還不是模型的一部分,則會將它新增至模型。 |
Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>) |
在模型中執行指定實體類型的組態。 如果實體類型還不是模型的一部分,則會將它新增至模型。 |
FinalizeModel() |
強制在模型上進行後處理,使其可供執行時間使用。 使用 OnModelCreating(ModelBuilder) 時,會自動執行這個後置處理;這個方法允許在無法自動執行的情況下明確執行。 |
HasAnnotation(String, Object) |
在模型上新增或更新注釋。 如果中 |
HasChangeTrackingStrategy(ChangeTrackingStrategy) |
設定要用於此模型的預設值 ChangeTrackingStrategy 。 此策略指出內容如何偵測實體類型實例的屬性變更。 |
HasChangeTrackingStrategy(ChangeTrackingStrategy) |
設定要用於此模型的預設值 ChangeTrackingStrategy 。 此策略指出內容如何偵測實體類型實例的屬性變更。 |
Ignore(String) |
從模型中排除具有指定名稱的實體類型。 這個方法通常用來從慣例新增的模型中移除類型。 |
Ignore(Type) |
從模型中排除具有指定 CLR 類型的實體類型。 這個方法通常用來從慣例新增的模型中移除類型。 |
Ignore<TEntity>() |
從模型中排除指定的實體類型。 這個方法通常用來從慣例新增的模型中移除類型。 |
Owned(Type) |
將實體類型標示為擁有。 此類型的所有參考都會設定為個別擁有的類型實例。 |
Owned<T>() |
將實體類型標示為擁有。 此類型的所有參考都會設定為個別擁有的類型實例。 |
Query(Type) |
已淘汰.
傳回 物件,這個物件可用來在模型中設定指定的查詢類型。 如果查詢類型還不是模型的一部分,則會將它新增至模型。 |
Query(Type, Action<EntityTypeBuilder>) |
已淘汰.
在模型中執行指定查詢類型的組態。 如果查詢類型還不是模型的一部分,則會將它新增至模型。 此多載允許在方法呼叫中以一行方式完成查詢類型的組態,而不是在 呼叫 Query<TQuery>() 之後鏈結。 這可讓模型層級的其他組態在查詢類型的組態之後鏈結。 |
Query(Type, Action<QueryTypeBuilder>) |
在模型中執行指定查詢類型的組態。 如果查詢類型還不是模型的一部分,則會將它新增至模型。 此多載允許在方法呼叫中以一行方式完成查詢類型的組態,而不是在 呼叫 Query<TQuery>() 之後鏈結。 這可讓模型層級的其他組態在查詢類型的組態之後鏈結。 |
Query<TQuery>() |
已淘汰.
傳回 物件,這個物件可用來在模型中設定指定的查詢類型。 如果查詢類型還不是模型的一部分,則會將它新增至模型。 |
Query<TQuery>(Action<QueryTypeBuilder<TQuery>>) |
已淘汰.
在模型中執行指定查詢類型的組態。 如果查詢類型還不是模型的一部分,則會將它新增至模型。 此多載允許在方法呼叫中以一行方式完成查詢類型的組態,而不是在 呼叫 Query<TQuery>() 之後鏈結。 這可讓模型層級的其他組態在查詢類型的組態之後鏈結。 |
SharedTypeEntity(String, Type) |
傳回 物件,這個物件可用來在模型中設定指定的共用類型實體類型。 |
SharedTypeEntity(String, Type, Action<EntityTypeBuilder>) |
傳回 物件,這個物件可用來在模型中設定指定的共用類型實體類型。 |
SharedTypeEntity<TEntity>(String) |
傳回 物件,這個物件可用來在模型中設定指定的共用類型實體類型。 |
SharedTypeEntity<TEntity>(String, Action<EntityTypeBuilder<TEntity>>) |
傳回 物件,這個物件可用來在模型中設定指定的共用類型實體類型。 |
UsePropertyAccessMode(PropertyAccessMode) |
PropertyAccessMode設定要用於此實體類型之所有屬性的 。 根據預設,如果依慣例找到支援欄位或已指定支援欄位,則會在建構新物件時使用,通常是從資料庫查詢實體時。 屬性會用於所有其他存取。 呼叫這個方法會變更模型中所有屬性的行為,如列舉中所述 PropertyAccessMode 。 |
UsePropertyAccessMode(PropertyAccessMode) |
PropertyAccessMode設定要用於此實體類型之所有屬性的 。 |
明確介面實作
IInfrastructure<IConventionModelBuilder>.Instance |
用來設定此模型的內部 ModelBuilder 。 |
IInfrastructure<InternalModelBuilder>.Instance |
用來設定此模型的內部 ModelBuilder 。 此屬性供擴充方法用來設定模型。 它不適合用于應用程式程式碼。 |