ModelBuilder 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供一個簡單的 API 介面來配置 , IMutableModel 定義實體的形狀、它們之間的關係,以及如何映射到資料庫。
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder>
[System.Runtime.CompilerServices.Nullable(0)]
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
public class ModelBuilder : Microsoft.EntityFrameworkCore.Infrastructure.IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Builders.IConventionModelBuilder>
type ModelBuilder = class
interface IInfrastructure<InternalModelBuilder>
[<System.Runtime.CompilerServices.Nullable(0)>]
type ModelBuilder = class
interface IInfrastructure<IConventionModelBuilder>
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中的建模實體類型與關係 。
建構函式
| 名稱 | Description |
|---|---|
| ModelBuilder() |
初始化類別的新實例 ModelBuilder ,且不使用任何慣例。 警告:建立正確模型需要使用慣例。 |
| ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration) |
這是一個內部 API,支援 Entity Framework Core 基礎架構,且不受公開 API 相同的相容性標準約束。 該內容可能會在任何新聞稿中未經通知而更改或移除。 你應該只在程式碼中直接使用它,並且要非常謹慎,並且要知道這樣做可能會導致更新到新的 Entity Framework Core 版本時應用程式失敗。 |
| ModelBuilder(ConventionSet, ModelDependencies) |
初始化一個新的類別實例,該實例 ModelBuilder 將套用一組慣例。 |
| ModelBuilder(ConventionSet) |
初始化一個新的類別實例,該實例 ModelBuilder 將套用一組慣例。 |
| ModelBuilder(IMutableModel) |
已淘汰.
這是一個內部 API,支援 Entity Framework Core 基礎架構,且不受公開 API 相同的相容性標準約束。 該內容可能會在任何新聞稿中未經通知而更改或移除。 你應該只在程式碼中直接使用它,並且要非常謹慎,並且要知道這樣做可能會導致更新到新的 Entity Framework Core 版本時應用程式失敗。 |
屬性
| 名稱 | Description |
|---|---|
| Model |
模型正在設定中。 |
方法
| 名稱 | Description |
|---|---|
| ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>) |
套用在實 IEntityTypeConfiguration<TEntity> 例中定義的配置。 |
| ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>) |
已淘汰.
套用在實 IQueryTypeConfiguration<TQuery> 例中定義的配置。 |
| ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>) |
套用所有在所提供組合中定義的實例的設定 IEntityTypeConfiguration<TEntity> 。 |
| Entity(String, Action<EntityTypeBuilder>) |
在模型中執行特定實體類型的配置。 若模型中尚未包含該名稱的實體類型,則會新增一個沒有對應 CLR 類型的實體類型。 |
| Entity(String) |
回傳一個物件,可用於在模型中配置特定實體類型。 若模型中尚未包含該名稱的實體類型,則會新增一個沒有對應 CLR 類型的實體類型。 |
| Entity(Type, Action<EntityTypeBuilder>) |
在模型中執行特定實體類型的配置。 如果該實體類型尚未成為模型的一部分,則會被加入模型中。 |
| Entity(Type) |
回傳一個物件,可用於在模型中配置特定實體類型。 如果該實體類型尚未成為模型的一部分,則會被加入模型中。 |
| Entity<TEntity>() |
回傳一個物件,可用於在模型中配置特定實體類型。 如果該實體類型尚未成為模型的一部分,則會被加入模型中。 |
| Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>) |
在模型中執行特定實體類型的配置。 如果該實體類型尚未成為模型的一部分,則會被加入模型中。 |
| FinalizeModel() |
強制後處理模型,使其在執行時即可使用。 當使用 OnModelCreating(ModelBuilder)時,後製處理會自動進行;此方法允許在無法自動執行的情況下明確執行。 |
| HasAnnotation(String, Object) |
新增或更新模型上的註解。 如果已有標註中指定的 |
| HasChangeTrackingStrategy(ChangeTrackingStrategy) |
設定此模型的預設 ChangeTrackingStrategy 值。 此策略顯示上下文如何偵測某個實體類型實例的屬性變更。 |
| HasChangeTrackingStrategy(ChangeTrackingStrategy) |
設定此模型的預設 ChangeTrackingStrategy 值。 此策略顯示上下文如何偵測某個實體類型實例的屬性變更。 |
| HasEmbeddedDiscriminatorName(String) |
設定名稱用於嵌入 JSON 文件中的判別符屬性。 預設是「$type」。 |
| Ignore(String) |
排除模型中帶有該名稱的實體類型。 此方法通常用於移除慣例中新增的型別。 |
| Ignore(Type) |
排除具有特定 CLR 類型的實體類型。 此方法通常用於移除慣例中新增的型別。 |
| Ignore<TEntity>() |
將該實體類型排除在模型之外。 此方法通常用於移除慣例中新增的型別。 |
| Owned(Type) |
標記某個實體類型為擁有。 所有對此類型的引用都會被設定為獨立的擁有型態實例。 |
| Owned<T>() |
標記某個實體類型為擁有。 所有對此類型的引用都會被設定為獨立的擁有型態實例。 |
| Query(Type, Action<EntityTypeBuilder>) |
已淘汰.
在模型中執行特定查詢類型的配置。 如果查詢類型尚未包含在模型中,則會被加入模型中。 此過載允許查詢類型在方法呼叫中串連配置,而非在呼叫 Query<TQuery>()後串接。 這允許在查詢類型的設定後,在模型層級串接額外的設定。 |
| Query(Type, Action<QueryTypeBuilder>) |
在模型中執行特定查詢類型的配置。 如果查詢類型尚未包含在模型中,則會被加入模型中。 此過載允許查詢類型在方法呼叫中串連配置,而非在呼叫 Query<TQuery>()後串接。 這允許在查詢類型的設定後,在模型層級串接額外的設定。 |
| Query(Type) |
已淘汰.
回傳一個物件,可用於在模型中配置特定查詢類型。 如果查詢類型尚未包含在模型中,則會被加入模型中。 |
| Query<TQuery>() |
已淘汰.
回傳一個物件,可用於在模型中配置特定查詢類型。 如果查詢類型尚未包含在模型中,則會被加入模型中。 |
| Query<TQuery>(Action<QueryTypeBuilder<TQuery>>) |
已淘汰.
在模型中執行特定查詢類型的配置。 如果查詢類型尚未包含在模型中,則會被加入模型中。 此過載允許查詢類型在方法呼叫中串連配置,而非在呼叫 Query<TQuery>()後串接。 這允許在查詢類型的設定後,在模型層級串接額外的設定。 |
| SharedTypeEntity(String, Type, Action<EntityTypeBuilder>) |
回傳一個物件,可用於在模型中配置特定共享類型實體類型。 |
| SharedTypeEntity(String, Type) |
回傳一個物件,可用於在模型中配置特定共享類型實體類型。 |
| SharedTypeEntity<TEntity>(String, Action<EntityTypeBuilder<TEntity>>) |
回傳一個物件,可用於在模型中配置特定共享類型實體類型。 |
| SharedTypeEntity<TEntity>(String) |
回傳一個物件,可用於在模型中配置特定共享類型實體類型。 |
| UsePropertyAccessMode(PropertyAccessMode) |
設定 為 PropertyAccessMode 該實體類型的所有屬性所使用。 預設情況下,如果依慣例找到或已指定,則在建構新物件時會使用該欄位,通常是從資料庫查詢實體時。 所有其他進出通道皆使用物業。 呼叫此方法會改變模型中所有屬性的行為,如列舉中所述 PropertyAccessMode 。 |
| UsePropertyAccessMode(PropertyAccessMode) |
設定 為 PropertyAccessMode 該實體類型的所有屬性所使用。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IInfrastructure<IConventionModelBuilder>.Instance |
內部是用來配置這個模型的。ModelBuilder |
| IInfrastructure<InternalModelBuilder>.Instance |
內部是用來配置這個模型的。ModelBuilder 此特性是為了透過擴充方法來配置模型而設計。 它並非用於應用程式程式碼中。 |