ModelBuilder クラス

定義

エンティティの形状、それらの間のリレーションシップ、およびそれらがデータベースにマップされる方法を定義する を構成 IMutableModel するための単純な API サーフェスを提供します。

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)

モデルの注釈を追加または更新します。 で指定されたキーを持つ注釈が既に annotation 存在する場合、その値は更新されます。

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

このプロパティは、モデルを構成するための拡張メソッドで使用するためのものです。 これは、アプリケーション コードで使用することを意図したものではありません。

拡張メソッド

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

自動スケーリングプロビジョニングスループットオファリングを構成します。

HasDefaultContainer(ModelBuilder, String)

エンティティ型に対して明示的に構成された名前がない場合に使用される既定のコンテナー名を構成します。

HasManualThroughput(ModelBuilder, Nullable<Int32>)

手動でプロビジョニングされたスループット オファリングを構成します。

GetInfrastructure<T>(IInfrastructure<T>)

を使用して非表示になっているプロパティから値を IInfrastructure<T>取得します。

このメソッドは、通常、データベース プロバイダー (およびその他の拡張機能) によって使用されます。 通常、アプリケーション コードでは使用されません。

HasDbFunction(ModelBuilder, MethodInfo)

リレーショナル データベースを対象とする場合にデータベース関数を構成します。

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

リレーショナル データベースを対象とする場合にデータベース関数を構成します。

HasDbFunction<TResult>(ModelBuilder, Expression<Func<TResult>>)

リレーショナル データベースを対象とする場合にデータベース関数を構成します。

HasDefaultSchema(ModelBuilder, String)

スキーマが明示的に構成されていない場合に、データベース オブジェクトを作成する既定のスキーマを構成します。

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, String, String)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, String, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, String, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, Action<RelationalSequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, String)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, String, Action<RelationalSequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence(ModelBuilder, Type, String, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, Action<SequenceBuilder>)

リレーショナル データベースをターゲットにするときにデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>)

リレーショナル データベースを対象とする場合にデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, Action<SequenceBuilder>)

リレーショナル データベースを対象とする場合にデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, String)

リレーショナル データベースを対象とする場合にデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, String, Action<SequenceBuilder>)

リレーショナル データベースを対象とする場合にデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

リレーショナル データベースを対象とする場合にデータベース シーケンスを構成します。

HasSequence<T>(ModelBuilder, String, String, Action<SequenceBuilder>)

リレーショナル データベースを対象とする場合にデータベース シーケンスを構成します。

UseCollation(ModelBuilder, String)

明示的な照合順序を使用せずにすべての列で使用されるデータベース照合順序を構成します。

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence(ModelBuilder, String, String)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence(ModelBuilder, Type, String, Action<RelationalSequenceBuilder>)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence(ModelBuilder, Type, String, String, Action<RelationalSequenceBuilder>)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerHasSequence<T>(ModelBuilder, String, String, Action<RelationalSequenceBuilder>)

SQL Serverをターゲットにするときにデータベース シーケンスを構成します。

ForSqlServerUseIdentityColumns(ModelBuilder)

SQL Server IDENTITY 機能を使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。 これは、SQL Serverを対象とする場合の既定の動作です。

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
古い.

SQL Server IDENTITY 機能を使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。 これは、SQL Serverを対象とする場合の既定の動作です。

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
古い.

シーケンスベースの hi-lo パターンを使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。

HasDatabaseMaxSize(ModelBuilder, String)

Azure SQL Database の最大サイズを構成します。

HasPerformanceLevel(ModelBuilder, String)

Azure SQL Database のパフォーマンス レベル (SERVICE_OBJECTIVE) を文字列リテラルとして構成します。

HasPerformanceLevelSql(ModelBuilder, String)

Azure SQL Database のパフォーマンス レベル (SERVICE_OBJECTIVE) を SQL 式として構成します。

HasServiceTier(ModelBuilder, String)

Azure SQL Database のサービス レベル (EDITION) を文字列リテラルとして構成します。

HasServiceTierSql(ModelBuilder, String)

sql 式として Azure SQL Database のサービス レベル (EDITION) を構成します。

UseHiLo(ModelBuilder, String, String)

シーケンスベースの hi-lo パターンを使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。

UseIdentityColumns(ModelBuilder, Int32, Int32)

SQL Server IDENTITY 機能を使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。 これは、SQL Serverを対象とする場合の既定の動作です。

UseIdentityColumns(ModelBuilder, Int64, Int32)

SQL Server IDENTITY 機能を使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。 これは、SQL Serverを対象とする場合の既定の動作です。

UseKeySequences(ModelBuilder, String, String)

階層ごとにシーケンスを使用して、 としてOnAddマークされたキー プロパティの値を生成するようにモデルを構成SQL Server。

適用対象