Dil

ModelBuilder Sınıf

Tanım

Varlıklarınızın şeklini, aralarındaki ilişkileri ve 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>
[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)
Devralma
ModelBuilder
Özellikler
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

Veri Akışı Adı Description
ModelBuilder()

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

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

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(ConventionSet, ModelDependencies)

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

ModelBuilder(ConventionSet)

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

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

Veri Akışı Adı Description
Model

Yapılandırılan model.

Yöntemler

Veri Akışı Adı Description
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ırma uygular.

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üne sahip olmayan yeni bir varlık türü eklenir.

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üne sahip olmayan yeni bir varlık türü 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(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<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 işlem sonrası işlemleri çalışma zamanı tarafından kullanıma hazır olacak şekilde zorlar. Bu işlem sonrası, kullanılırken 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 değeri yapılandırıyor. Bu strateji, bağlamın varlık türünün bir örneğinin özelliklerindeki değişiklikleri nasıl algıladiğini gösterir.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

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

HasEmbeddedDiscriminatorName(String)

JSON belgelerine eklenmiş ayrımcı özellikler için kullanılacak adı ayarlar. Varsayılan değer "$type"dir.

Ignore(String)

Belirtilen 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)

Belirtilen 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, 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ırda 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ırda 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)
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>()
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ırda 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, 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(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<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.

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.

UsePropertyAccessMode(PropertyAccessMode)

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

Varsayılan olarak, bir tane kurala göre 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 bu davranışı sabit listesi içinde PropertyAccessMode açıklandığı gibi 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ı

Veri Akışı Adı Description
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ı

Veri Akışı Adı Description
ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

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, String, String)

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, 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<T>(ModelBuilder, String, Action<RelationalSequenceBuilder>)

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.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

SQL Server hedeflerken bir veritabanı dizisi yapılandırılı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.

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.

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ı hi-lo deseni kullanacak şekilde OnAddyapı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.

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

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

HasDatabaseMaxSize(ModelBuilder, String)

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

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

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

HasDbFunction(ModelBuilder, MethodInfo)

İ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.

HasDefaultContainer(ModelBuilder, String)

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

HasDefaultFullTextLanguage(ModelBuilder, String)

Veritabanı kapsamında tam metin araması için kullanılacak varsayılan bir dil yapılandırılır.

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.

HasDiscriminatorInJsonIds(ModelBuilder, Nullable<Boolean>)

JSON "id" değerinde varlık türünün ayırıcı değerini içerir. Bu, EF Core 9'un önceki varsayılan davranışıydı.

HasFullTextCatalog(ModelBuilder, String)

Modelde tam metin kataloğu yapılandırılır.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

El ile sağlanan aktarım hızı teklifini yapılandırı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)

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

HasRootDiscriminatorInJsonId(ModelBuilder, Nullable<Boolean>)

JSON "id" değerinde kök varlık türünün ayırıcı değerini içerir. Bu, aynı birincil anahtara sahip türlerin aynı kapsayıcıya kaydedilmesine izin verirken, bilinmeyen türde aramalar için "ReadItem" kullanılmasına izin verir.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

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

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

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

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

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

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

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

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

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

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

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

HasSequence(ModelBuilder, String, String)

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

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

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

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

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

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

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

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

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

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

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

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

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

HasSequence(ModelBuilder, Type, String, String)

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

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

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

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

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

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

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

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

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

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

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

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

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

HasSequence<T>(ModelBuilder, String, String)

İlişkisel bir veritabanını hedeflerken bir veritabanı dizisi 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.

HasShadowIds(ModelBuilder, Nullable<Boolean>)

Model oluşturmayı her zaman JSON "id" ile eşlenmiş bir "__id" gölge özelliği oluşturmaya zorlar. Bu, EF Core 9.0'ın önceki varsayılan davranışıydı.

UseCollation(ModelBuilder, String)

Açık harmanlama olmadan tüm sütunlar tarafından kullanılacak olan veritabanı harmanlamasını 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ı 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.

UseNamedDefaultConstraints(ModelBuilder, Boolean)

Modeli adlandırılmış varsayılan kısıtlamaları kullanacak şekilde yapılandırılır.

Şunlara uygulanır