Bagikan melalui


ModelBuilder Kelas

Definisi

Menyediakan permukaan API sederhana untuk mengonfigurasi IMutableModel yang menentukan bentuk entitas Anda, hubungan di antara mereka, dan bagaimana mereka memetakan ke database.

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

Keterangan

Anda dapat menggunakan ModelBuilder untuk membuat model untuk konteks dengan mengambil alih konteks turunan OnModelCreating(ModelBuilder) Anda. Atau Anda dapat membuat model secara eksternal dan mengaturnya pada instans yang diteruskan DbContextOptions ke konstruktor konteks.

Lihat Pemodelan jenis entitas dan hubungan di EF Core untuk informasi dan contoh selengkapnya.

Konstruktor

ModelBuilder()

Menginisialisasi instans ModelBuilder baru kelas tanpa konvensi.

Peringatan: konvensi diperlukan untuk membangun model yang benar.

ModelBuilder(ConventionSet)

Menginisialisasi instans ModelBuilder baru kelas yang akan menerapkan serangkaian konvensi.

ModelBuilder(ConventionSet, ModelDependencies)

Menginisialisasi instans ModelBuilder baru kelas yang akan menerapkan serangkaian konvensi.

ModelBuilder(ConventionSet, ModelDependencies, ModelConfiguration)

Ini adalah API internal yang mendukung infrastruktur Entity Framework Core dan tidak tunduk pada standar kompatibilitas yang sama dengan API publik. Ini dapat diubah atau dihapus tanpa pemberitahuan dalam rilis apa pun. Anda hanya boleh menggunakannya langsung dalam kode Anda dengan sangat hati-hati dan mengetahui bahwa melakukannya dapat mengakibatkan kegagalan aplikasi saat memperbarui ke rilis Entity Framework Core baru.

ModelBuilder(IMutableModel)
Kedaluwarsa.

Ini adalah API internal yang mendukung infrastruktur Entity Framework Core dan tidak tunduk pada standar kompatibilitas yang sama dengan API publik. Ini dapat diubah atau dihapus tanpa pemberitahuan dalam rilis apa pun. Anda hanya boleh menggunakannya langsung dalam kode Anda dengan sangat hati-hati dan mengetahui bahwa melakukannya dapat mengakibatkan kegagalan aplikasi saat memperbarui ke rilis Entity Framework Core baru.

Properti

Model

Model sedang dikonfigurasi.

Metode

ApplyConfiguration<TEntity>(IEntityTypeConfiguration<TEntity>)

Menerapkan konfigurasi yang ditentukan dalam IEntityTypeConfiguration<TEntity> instans.

ApplyConfiguration<TQuery>(IQueryTypeConfiguration<TQuery>)
Kedaluwarsa.

Menerapkan konfigurasi yang ditentukan dalam IQueryTypeConfiguration<TQuery> instans.

ApplyConfigurationsFromAssembly(Assembly, Func<Type,Boolean>)

Menerapkan konfigurasi dari semua IEntityTypeConfiguration<TEntity> instans yang ditentukan dalam assembly yang disediakan.

Entity(String)

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas tertentu dalam model. Jika jenis entitas dengan nama yang disediakan belum menjadi bagian dari model, jenis entitas baru yang tidak memiliki jenis CLR yang sesuai akan ditambahkan ke model.

Entity(String, Action<EntityTypeBuilder>)

Melakukan konfigurasi jenis entitas tertentu dalam model. Jika jenis entitas dengan nama yang disediakan belum menjadi bagian dari model, jenis entitas baru yang tidak memiliki jenis CLR yang sesuai akan ditambahkan ke model.

Entity(Type)

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas tertentu dalam model. Jika jenis entitas belum menjadi bagian dari model, jenis entitas akan ditambahkan ke model.

Entity(Type, Action<EntityTypeBuilder>)

Melakukan konfigurasi jenis entitas tertentu dalam model. Jika jenis entitas belum menjadi bagian dari model, jenis entitas akan ditambahkan ke model.

Entity<TEntity>()

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas tertentu dalam model. Jika jenis entitas belum menjadi bagian dari model, jenis entitas akan ditambahkan ke model.

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

Melakukan konfigurasi jenis entitas tertentu dalam model. Jika jenis entitas belum menjadi bagian dari model, jenis entitas akan ditambahkan ke model.

FinalizeModel()

Memaksa pasca-pemrosesan pada model sehingga siap digunakan oleh runtime. Pemrosesan pasca ini terjadi secara otomatis saat menggunakan OnModelCreating(ModelBuilder); metode ini memungkinkannya untuk dijalankan secara eksplisit dalam kasus di mana eksekusi otomatis tidak dimungkinkan.

HasAnnotation(String, Object)

Menambahkan atau memperbarui anotasi pada model. Jika anotasi dengan kunci yang ditentukan di annotation sudah ada, nilainya akan diperbarui.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Mengonfigurasi default ChangeTrackingStrategy yang akan digunakan untuk model ini. Strategi ini menunjukkan bagaimana konteks mendeteksi perubahan pada properti untuk instans jenis entitas.

HasChangeTrackingStrategy(ChangeTrackingStrategy)

Mengonfigurasi default ChangeTrackingStrategy yang akan digunakan untuk model ini. Strategi ini menunjukkan bagaimana konteks mendeteksi perubahan pada properti untuk instans jenis entitas.

Ignore(String)

Mengecualikan jenis entitas dengan nama yang diberikan dari model. Metode ini biasanya digunakan untuk menghapus jenis dari model yang ditambahkan oleh konvensi.

Ignore(Type)

Mengecualikan jenis entitas dengan jenis CLR tertentu dari model. Metode ini biasanya digunakan untuk menghapus jenis dari model yang ditambahkan oleh konvensi.

Ignore<TEntity>()

Mengecualikan jenis entitas yang diberikan dari model. Metode ini biasanya digunakan untuk menghapus jenis dari model yang ditambahkan oleh konvensi.

Owned(Type)

Menandai jenis entitas sebagai milik. Semua referensi ke jenis ini akan dikonfigurasi sebagai instans jenis yang dimiliki terpisah.

Owned<T>()

Menandai jenis entitas sebagai milik. Semua referensi ke jenis ini akan dikonfigurasi sebagai instans jenis yang dimiliki terpisah.

Query(Type)
Kedaluwarsa.

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis kueri tertentu dalam model. Jika jenis kueri belum menjadi bagian dari model, jenis kueri akan ditambahkan ke model.

Query(Type, Action<EntityTypeBuilder>)
Kedaluwarsa.

Melakukan konfigurasi jenis kueri tertentu dalam model. Jika jenis kueri belum menjadi bagian dari model, jenis kueri akan ditambahkan ke model.

Kelebihan beban ini memungkinkan konfigurasi jenis kueri dilakukan sejalan dalam panggilan metode daripada ditautkan setelah panggilan ke Query<TQuery>(). Ini memungkinkan konfigurasi tambahan di tingkat model ditautkan setelah konfigurasi untuk jenis kueri.

Query(Type, Action<QueryTypeBuilder>)

Melakukan konfigurasi jenis kueri tertentu dalam model. Jika jenis kueri belum menjadi bagian dari model, jenis kueri akan ditambahkan ke model.

Kelebihan beban ini memungkinkan konfigurasi jenis kueri dilakukan sejalan dalam panggilan metode daripada ditautkan setelah panggilan ke Query<TQuery>(). Ini memungkinkan konfigurasi tambahan di tingkat model ditautkan setelah konfigurasi untuk jenis kueri.

Query<TQuery>()
Kedaluwarsa.

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis kueri tertentu dalam model. Jika jenis kueri belum menjadi bagian dari model, jenis kueri akan ditambahkan ke model.

Query<TQuery>(Action<QueryTypeBuilder<TQuery>>)
Kedaluwarsa.

Melakukan konfigurasi jenis kueri tertentu dalam model. Jika jenis kueri belum menjadi bagian dari model, jenis kueri akan ditambahkan ke model.

Kelebihan beban ini memungkinkan konfigurasi jenis kueri dilakukan sejalan dalam panggilan metode daripada ditautkan setelah panggilan ke Query<TQuery>(). Ini memungkinkan konfigurasi tambahan di tingkat model ditautkan setelah konfigurasi untuk jenis kueri.

SharedTypeEntity(String, Type)

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas jenis bersama tertentu dalam model.

SharedTypeEntity(String, Type, Action<EntityTypeBuilder>)

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas jenis bersama tertentu dalam model.

SharedTypeEntity<TEntity>(String)

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas jenis bersama tertentu dalam model.

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

Mengembalikan objek yang dapat digunakan untuk mengonfigurasi jenis entitas jenis bersama tertentu dalam model.

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode Mengatur untuk digunakan untuk semua properti jenis entitas ini.

Secara default, bidang backing, jika ditemukan oleh konvensi atau telah ditentukan, digunakan saat objek baru dibangun, biasanya ketika entitas dikueri dari database. Properti digunakan untuk semua akses lainnya. Memanggil metode ini akan mengubah perilaku tersebut untuk semua properti dalam model seperti yang dijelaskan dalam PropertyAccessMode enum.

UsePropertyAccessMode(PropertyAccessMode)

PropertyAccessMode Mengatur untuk digunakan untuk semua properti jenis entitas ini.

Implementasi Antarmuka Eksplisit

IInfrastructure<IConventionModelBuilder>.Instance

Internal ModelBuilder yang digunakan untuk mengonfigurasi model ini.

IInfrastructure<InternalModelBuilder>.Instance

Internal ModelBuilder yang digunakan untuk mengonfigurasi model ini.

Properti ini ditujukan untuk digunakan oleh metode ekstensi untuk mengonfigurasi model. Ini tidak dimaksudkan untuk digunakan dalam kode aplikasi.

Metode Ekstensi

HasAutoscaleThroughput(ModelBuilder, Nullable<Int32>)

Mengonfigurasi penawaran throughput yang disediakan skala otomatis.

HasDefaultContainer(ModelBuilder, String)

Mengonfigurasi nama kontainer default yang akan digunakan jika tidak ada nama yang dikonfigurasi secara eksplisit untuk jenis entitas.

HasManualThroughput(ModelBuilder, Nullable<Int32>)

Mengonfigurasi penawaran throughput yang disediakan manual.

GetInfrastructure<T>(IInfrastructure<T>)

Mendapatkan nilai dari properti yang sedang disembunyikan menggunakan IInfrastructure<T>.

Metode ini biasanya digunakan oleh penyedia database (dan ekstensi lainnya). Umumnya tidak digunakan dalam kode aplikasi.

HasDbFunction(ModelBuilder, MethodInfo)

Mengonfigurasi fungsi database saat menargetkan database relasional.

HasDbFunction(ModelBuilder, MethodInfo, Action<DbFunctionBuilder>)

Mengonfigurasi fungsi database saat menargetkan database relasional.

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

Mengonfigurasi fungsi database saat menargetkan database relasional.

HasDefaultSchema(ModelBuilder, String)

Mengonfigurasi skema default tempat objek database harus dibuat, jika tidak ada skema yang dikonfigurasi secara eksplisit.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Mengonfigurasi urutan database saat menargetkan database relasional.

HasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Mengonfigurasi urutan database saat menargetkan database relasional.

HasSequence(ModelBuilder, String, Action<SequenceBuilder>)

Mengonfigurasi urutan database saat menargetkan database relasional.

HasSequence(ModelBuilder, String, String)

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

HasSequence(ModelBuilder, Type, String, String)

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

HasSequence<T>(ModelBuilder, String, String)

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

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

Mengonfigurasi urutan database saat menargetkan database relasional.

UseCollation(ModelBuilder, String)

Mengonfigurasi kolase database, yang akan digunakan oleh semua kolom tanpa kolase eksplisit.

ForSqlServerHasSequence(ModelBuilder, String, Action<RelationalSequenceBuilder>)

Mengonfigurasi urutan database saat menargetkan SQL Server.

ForSqlServerHasSequence(ModelBuilder, String, String)

Mengonfigurasi urutan database saat menargetkan SQL Server.

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

Mengonfigurasi urutan database saat menargetkan SQL Server.

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

Mengonfigurasi urutan database saat menargetkan SQL Server.

ForSqlServerHasSequence(ModelBuilder, Type, String, String)

Mengonfigurasi urutan database saat menargetkan SQL Server.

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

Mengonfigurasi urutan database saat menargetkan SQL Server.

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

Mengonfigurasi urutan database saat menargetkan SQL Server.

ForSqlServerHasSequence<T>(ModelBuilder, String, String)

Mengonfigurasi urutan database saat menargetkan SQL Server.

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

Mengonfigurasi urutan database saat menargetkan SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder)

Mengonfigurasi model untuk menggunakan fitur SQL Server IDENTITY untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server. Ini adalah perilaku default saat menargetkan SQL Server.

ForSqlServerUseIdentityColumns(ModelBuilder, Int32, Int32)
Kedaluwarsa.

Mengonfigurasi model untuk menggunakan fitur SQL Server IDENTITY untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server. Ini adalah perilaku default saat menargetkan SQL Server.

ForSqlServerUseSequenceHiLo(ModelBuilder, String, String)
Kedaluwarsa.

Mengonfigurasi model untuk menggunakan pola hi-lo berbasis urutan untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server.

HasDatabaseMaxSize(ModelBuilder, String)

Mengonfigurasi ukuran maksimum untuk database Azure SQL.

HasPerformanceLevel(ModelBuilder, String)

Mengonfigurasi tingkat performa (SERVICE_OBJECTIVE) untuk Azure SQL Database sebagai string literal.

HasPerformanceLevelSql(ModelBuilder, String)

Mengonfigurasi tingkat performa (SERVICE_OBJECTIVE) untuk Azure SQL Database sebagai ekspresi SQL.

HasServiceTier(ModelBuilder, String)

Mengonfigurasi tingkat layanan (EDISI) untuk database Azure SQL sebagai string harfiah.

HasServiceTierSql(ModelBuilder, String)

Mengonfigurasi tingkat layanan (EDISI) untuk Azure SQL Database sebagai ekspresi SQL.

UseHiLo(ModelBuilder, String, String)

Mengonfigurasi model untuk menggunakan pola hi-lo berbasis urutan untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server.

UseIdentityColumns(ModelBuilder, Int32, Int32)

Mengonfigurasi model untuk menggunakan fitur SQL Server IDENTITY untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server. Ini adalah perilaku default saat menargetkan SQL Server.

UseIdentityColumns(ModelBuilder, Int64, Int32)

Mengonfigurasi model untuk menggunakan fitur SQL Server IDENTITY untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server. Ini adalah perilaku default saat menargetkan SQL Server.

UseKeySequences(ModelBuilder, String, String)

Mengonfigurasi model untuk menggunakan urutan per hierarki untuk menghasilkan nilai untuk properti kunci yang ditandai sebagai OnAdd, saat menargetkan SQL Server.

Berlaku untuk