다음을 통해 공유


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) 컨텍스트에 대한 모델을 생성할 수 있습니다. 또는 외부에서 모델을 만들고 컨텍스트 생성자에 전달되는 instance 설정할 DbContextOptions 수 있습니다.

자세한 내용 과 예제는 EF Core에서 엔터티 형식 및 관계 모델링 을 참조하세요.

생성자

ModelBuilder()

규칙 없이 클래스의 ModelBuilder 새 instance 초기화합니다.

경고: 올바른 모델을 빌드하려면 규칙이 필요합니다.

ModelBuilder(ConventionSet)

규칙 집합을 적용할 클래스의 ModelBuilder 새 instance 초기화합니다.

ModelBuilder(ConventionSet, ModelDependencies)

규칙 집합을 적용할 클래스의 ModelBuilder 새 instance 초기화합니다.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

이 API는 Entity Framework Core 인프라를 지원하며 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 예고 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

ModelBuilder(IMutableModel)
사용되지 않음.

이 API는 Entity Framework Core 인프라를 지원하며 공용 API와 동일한 호환성 표준이 적용되지 않는 내부 API입니다. 릴리스에서 예고 없이 변경되거나 제거될 수 있습니다. 코드에서 직접 사용해야 하며, 이렇게 하면 새 Entity Framework Core 릴리스로 업데이트할 때 애플리케이션 오류가 발생할 수 있다는 것을 알고 있어야 합니다.

속성

Model

구성 중인 모델입니다.

메서드

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

instance 정의된 구성을 IEntityTypeConfiguration<TEntity> 적용합니다.

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
사용되지 않음.

instance 정의된 구성을 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 을 구성합니다. 이 전략은 컨텍스트가 엔터티 형식의 instance 속성에 대한 변경 내용을 검색하는 방법을 나타냅니다.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

이 모델에 사용할 기본값 ChangeTrackingStrategy 을 구성합니다. 이 전략은 컨텍스트가 엔터티 형식의 instance 속성에 대한 변경 내용을 검색하는 방법을 나타냅니다.

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 대상으로 지정할 때 SQL Server IDENTITY 기능을 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다. 이는 SQL Server 대상으로 지정할 때의 기본 동작입니다.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
사용되지 않음.

SQL Server 대상으로 지정할 때 SQL Server IDENTITY 기능을 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다. 이는 SQL Server 대상으로 지정할 때의 기본 동작입니다.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
사용되지 않음.

SQL Server 대상으로 지정할 때 시퀀스 기반 hi-lo 패턴을 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다.

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)

Azure SQL Database에 대한 서비스 계층(EDITION)을 SQL 식으로 구성합니다.

UseHiLo(ModelBuilder, String, String)

SQL Server 대상으로 지정할 때 시퀀스 기반 hi-lo 패턴을 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다.

UseIdentityColumns(ModelBuilder, Int32, Int32)

SQL Server 대상으로 지정할 때 SQL Server IDENTITY 기능을 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다. 이는 SQL Server 대상으로 지정할 때의 기본 동작입니다.

UseIdentityColumns(ModelBuilder, Int64, Int32)

SQL Server 대상으로 지정할 때 SQL Server IDENTITY 기능을 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다. 이는 SQL Server 대상으로 지정할 때의 기본 동작입니다.

UseKeySequences(ModelBuilder, String, String)

SQL Server 대상으로 지정할 때 계층당 시퀀스를 사용하여 로 OnAdd표시된 키 속성에 대한 값을 생성하도록 모델을 구성합니다.

적용 대상