ModelBuilder Sınıf

Tanım

Varlıklarınızın şeklini, aralarındaki ilişkileri ve bunların veritabanına nasıl eşlendiğini tanımlayan bir yapılandırmaya yönelik basit bir IMutableModel API yüzeyi sağlar.

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)
Devralma
ModelBuilder
Uygulamalar
IInfrastructure<Microsoft.EntityFrameworkCore.Metadata.Internal.InternalModelBuilder> IInfrastructure<IConventionModelBuilder>

Açıklamalar

Türetilmiş bağlamınızı geçersiz kılarak OnModelCreating(ModelBuilder) bağlam için model oluşturmak için kullanabilirsinizModelBuilder. Alternatif olarak modeli harici olarak oluşturabilir ve bağlam oluşturucuya geçirilen bir DbContextOptions örnekte ayarlayabilirsiniz.

Daha fazla bilgi ve örnek için bkz. EF Core'da varlık türlerini ve ilişkilerini modelleme .

Oluşturucular

ModelBuilder()

Kural olmadan sınıfının yeni bir örneğini ModelBuilder başlatır.

Uyarı: Doğru modeli oluşturmak için kurallar gereklidir.

ModelBuilder(ConventionSet)

Bir kural kümesi uygulayacak sınıfın ModelBuilder yeni bir örneğini başlatır.

ModelBuilder(ConventionSet, ModelDependencies)

Bir kural kümesi uygulayacak sınıfın ModelBuilder yeni bir örneğini başlatır.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Bu, Entity Framework Core altyapısını destekleyen ve genel API'ler ile aynı uyumluluk standartlarına tabi olmayan bir iç API'dir. Herhangi bir sürümde bildirimde bulunmaksızın değiştirilebilir veya kaldırılabilir. Bunu yalnızca kodunuzda son derece dikkatli bir şekilde kullanmanız ve bunu yapmanın yeni bir Entity Framework Core sürümüne güncelleştirme sırasında uygulama hatalarına neden olabileceğini bilmeniz gerekir.

ModelBuilder(IMutableModel)
Geçersiz.

Bu, Entity Framework Core altyapısını destekleyen ve genel API'ler ile aynı uyumluluk standartlarına tabi olmayan bir iç API'dir. Herhangi bir sürümde bildirimde bulunmaksızın değiştirilebilir veya kaldırılabilir. Bunu yalnızca kodunuzda son derece dikkatli bir şekilde kullanmanız ve bunu yapmanın yeni bir Entity Framework Core sürümüne güncelleştirme sırasında uygulama hatalarına neden olabileceğini bilmeniz gerekir.

Özellikler

Model

Yapılandırılan model.

Yöntemler

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Bir IEntityTypeConfiguration<TEntity> örnekte tanımlanan yapılandırmayı uygular.

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Geçersiz.

Bir IQueryTypeConfiguration<TQuery> örnekte tanımlanan yapılandırmayı uygular.

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Sağlanan derlemede tanımlanan tüm IEntityTypeConfiguration<TEntity> örneklerden yapılandırmayı uygular.

Entity(String)

Modelde belirli bir varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür. Sağlanan ada sahip bir varlık türü modelin parçası değilse, modele karşılık gelen CLR türü olmayan yeni bir varlık türü eklenir.

Entity(String, Action<EntityTypeBuilder>)

Modelde belirli bir varlık türünün yapılandırmasını gerçekleştirir. Sağlanan ada sahip bir varlık türü modelin parçası değilse, modele karşılık gelen CLR türü olmayan yeni bir varlık türü eklenir.

Entity(Type)

Modelde belirli bir varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür. Varlık türü modelin bir parçası değilse modele eklenir.

Entity(Type, Action<EntityTypeBuilder>)

Modelde belirli bir varlık türünün yapılandırmasını gerçekleştirir. Varlık türü modelin bir parçası değilse modele eklenir.

Entity<TEntity>()

Modelde belirli bir varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür. Varlık türü modelin bir parçası değilse modele eklenir.

Entity<TEntity>(Action<EntityTypeBuilder<TEntity>>)

Modelde belirli bir varlık türünün yapılandırmasını gerçekleştirir. Varlık türü modelin bir parçası değilse modele eklenir.

FinalizeModel()

Modelde son işlemeyi çalışma zamanı tarafından kullanılmaya hazır olacak şekilde zorlar. Bu gönderi işleme kullanıldığında OnModelCreating(ModelBuilder)otomatik olarak gerçekleşir; bu yöntem, otomatik yürütmenin mümkün olmadığı durumlarda açıkça çalıştırılmasını sağlar.

HasAnnotation(String, Object)

Modele ek açıklama ekler veya güncelleştirir. içinde annotation belirtilen anahtara sahip bir ek açıklama zaten varsa değeri güncelleştirilir.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Bu model için kullanılacak varsayılanı ChangeTrackingStrategy yapılandırıyor. Bu strateji, bağlamın bir varlık türü örneğinin özelliklerindeki değişiklikleri nasıl algıladiğini gösterir.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Bu model için kullanılacak varsayılanı ChangeTrackingStrategy yapılandırıyor. Bu strateji, bağlamın bir varlık türü örneğinin özelliklerindeki değişiklikleri nasıl algıladiğini gösterir.

Ignore(String)

Verilen ada sahip bir varlık türünü modelden dışlar. Bu yöntem genellikle kural tarafından eklenen modelden türleri kaldırmak için kullanılır.

Ignore(Type)

Verilen CLR türüne sahip bir varlık türünü modelden dışlar. Bu yöntem genellikle kural tarafından eklenen modelden türleri kaldırmak için kullanılır.

Ignore<TEntity>()

Verilen varlık türünü modelden dışlar. Bu yöntem genellikle kural tarafından eklenen modelden türleri kaldırmak için kullanılır.

Owned(Type)

Bir varlık türünü sahip olunan olarak işaretler. Bu türe yapılan tüm başvurular ayrı sahip olunan tür örnekleri olarak yapılandırılır.

Owned<T>()

Bir varlık türünü sahip olunan olarak işaretler. Bu türe yapılan tüm başvurular ayrı sahip olunan tür örnekleri olarak yapılandırılır.

Query(Type)
Geçersiz.

Modelde belirli bir sorgu türünü yapılandırmak için kullanılabilecek bir nesne döndürür. Sorgu türü modelin bir parçası değilse modele eklenir.

Query(Type, Action<EntityTypeBuilder>)
Geçersiz.

Modelde belirli bir sorgu türünün yapılandırmasını gerçekleştirir. Sorgu türü modelin bir parçası değilse modele eklenir.

Bu aşırı yükleme, sorgu türünün yapılandırmasının çağrısından sonra zincirlenmek yerine yöntem çağrısında satır içinde gerçekleştirilmesini Query<TQuery>()sağlar. Bu, sorgu türü için yapılandırmadan sonra model düzeyinde ek yapılandırmanın zincirlemesini sağlar.

Query(Type, Action<QueryTypeBuilder>)

Modelde belirli bir sorgu türünün yapılandırmasını gerçekleştirir. Sorgu türü modelin bir parçası değilse modele eklenir.

Bu aşırı yükleme, sorgu türünün yapılandırmasının çağrısından sonra zincirlenmek yerine yöntem çağrısında satır içinde gerçekleştirilmesini Query<TQuery>()sağlar. Bu, sorgu türü için yapılandırmadan sonra model düzeyinde ek yapılandırmanın zincirlemesini sağlar.

Query<TQuery>()
Geçersiz.

Modelde belirli bir sorgu türünü yapılandırmak için kullanılabilecek bir nesne döndürür. Sorgu türü modelin bir parçası değilse modele eklenir.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Geçersiz.

Modelde belirli bir sorgu türünün yapılandırmasını gerçekleştirir. Sorgu türü modelin bir parçası değilse modele eklenir.

Bu aşırı yükleme, sorgu türünün yapılandırmasının çağrısından sonra zincirlenmek yerine yöntem çağrısında satır içinde gerçekleştirilmesini Query<TQuery>()sağlar. Bu, sorgu türü için yapılandırmadan sonra model düzeyinde ek yapılandırmanın zincirlemesini sağlar.

SharedTypeEntity(String, Type)

Modelde belirli bir paylaşılan tür varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Modelde belirli bir paylaşılan tür varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür.

SharedTypeEntity<TEntity>(String)

Modelde belirli bir paylaşılan tür varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür.

SharedTypeEntity<TEntity>(String, Action<EntityTypeBuilder<TEntity>>)

Modelde belirli bir paylaşılan tür varlık türünü yapılandırmak için kullanılabilecek bir nesne döndürür.

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode Bu varlık türünün tüm özellikleri için kullanılacak öğesini ayarlar.

Varsayılan olarak, bir tane kural tarafından bulunursa veya belirtilmişse, yedekleme alanı yeni nesneler oluşturulduğunda, genellikle varlıklar veritabanından sorgulandığında kullanılır. Özellikler diğer tüm erişimler için kullanılır. Bu yöntemin çağrılması, modeldeki tüm özellikler için enum'da PropertyAccessMode açıklandığı gibi bu davranışı değiştirir.

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode Bu varlık türünün tüm özellikleri için kullanılacak öğesini ayarlar.

Belirtik Arabirim Kullanımları

IInfrastructure<IConventionModelBuilder>.Instance

Bu modeli yapılandırmak için kullanılan iç ModelBuilder .

IInfrastructure<InternalModelBuilder>.Instance

Bu modeli yapılandırmak için kullanılan iç ModelBuilder .

Bu özellik, modeli yapılandırmak için uzantı yöntemleri tarafından kullanılmak üzere tasarlanmıştır. Uygulama kodunda kullanılması amaçlanmamıştır.

Uzantı Metotları

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Sağlanan aktarım hızı teklifini otomatik ölçeklendirmeyi yapılandırır.

HasDefaultContainer(ModelBuilder, String)

Bir varlık türü için açıkça yapılandırılan bir ad yoksa kullanılacak varsayılan kapsayıcı adını yapılandırır.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

El ile sağlanan aktarım hızı teklifini yapılandırır.

GetInfrastructure<T>(IInfrastructure<T>)

kullanılarak IInfrastructure<T>gizlenen bir özellikten değerini alır.

Bu yöntem genellikle veritabanı sağlayıcıları (ve diğer uzantılar) tarafından kullanılır. Genellikle uygulama kodunda kullanılmaz.

HasDbFunction(ModelBuilder, MethodInfo)

İlişkisel veritabanını hedeflerken veritabanı işlevini yapılandırıyor.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

İlişkisel veritabanını hedeflerken veritabanı işlevini yapılandırıyor.

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

İlişkisel veritabanını hedeflerken veritabanı işlevini yapılandırıyor.

HasDefaultSchema(ModelBuilder, String)

Hiçbir şema açıkça yapılandırılmamışsa, veritabanı nesnelerinin oluşturulması gereken varsayılan şemayı yapılandırılır.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

HasSequence(ModelBuilder, String, String)

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

HasSequence(ModelBuilder, Type, String, String)

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

HasSequence<T>(ModelBuilder, String, String)

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

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

İlişkisel veritabanını hedeflerken bir veritabanı dizisi yapılandırılır.

UseCollation(ModelBuilder, String)

Açık harmanlama olmadan tüm sütunlar tarafından kullanılacak veritabanı harmanlamasını yapılandırılır.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

ForSqlServerHasSequence(ModelBuilder, String, String)

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

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

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

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

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

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

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

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

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

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

SQL Server hedeflerken bir veritabanı dizisi yapılandırılır.

ForSqlServerUseIdentityColumns(ModelBuilder)

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere SQL Server IDENTITY özelliğini kullanacak şekilde OnAddyapılandırılır. Bu, SQL Server hedeflerken varsayılan davranıştır.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Geçersiz.

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere SQL Server IDENTITY özelliğini kullanacak şekilde OnAddyapılandırılır. Bu, SQL Server hedeflerken varsayılan davranıştır.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Geçersiz.

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere sıra tabanlı bir hi-lo deseni kullanacak şekilde OnAddyapılandırır.

HasDatabaseMaxSize(ModelBuilder, String)

Azure SQL Veritabanı için en büyük boyutu yapılandırılır.

HasPerformanceLevel(ModelBuilder, String)

Azure SQL Veritabanı için performans düzeyini (SERVICE_OBJECTIVE) dize değişmez değeri olarak yapılandırılır.

HasPerformanceLevelSql(ModelBuilder, String)

Azure SQL Veritabanı için performans düzeyini (SERVICE_OBJECTIVE) SQL ifadesi olarak yapılandırılır.

HasServiceTier(ModelBuilder, String)

Azure SQL Veritabanı için hizmet katmanını (EDITION) dize değişmez değeri olarak yapılandırılır.

HasServiceTierSql(ModelBuilder, String)

Azure SQL Veritabanı için hizmet katmanını (EDITION) SQL ifadesi olarak yapılandırılır.

UseHiLo(ModelBuilder, String, String)

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere sıra tabanlı bir hi-lo deseni kullanacak şekilde OnAddyapılandırır.

UseIdentityColumns(ModelBuilder, Int32, Int32)

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere SQL Server IDENTITY özelliğini kullanacak şekilde OnAddyapılandırılır. Bu, SQL Server hedeflerken varsayılan davranıştır.

UseIdentityColumns(ModelBuilder, Int64, Int32)

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere SQL Server IDENTITY özelliğini kullanacak şekilde OnAddyapılandırılır. Bu, SQL Server hedeflerken varsayılan davranıştır.

UseKeySequences(ModelBuilder, String, String)

modeli, SQL Server hedeflerken olarak işaretlenmiş anahtar özellikleri için değerler oluşturmak üzere hiyerarşi başına bir dizi kullanacak şekilde OnAddyapılandırılır.

Şunlara uygulanır