Bagikan melalui


Fitur kolom khusus untuk penyedia Entity Framework Core SQL Server

Halaman ini merinci opsi konfigurasi kolom yang khusus untuk penyedia SQL Server.

Unicode dan UTF-8

SQL Server 2019 memperkenalkan dukungan UTF-8 yang diperkenalkan, yang memungkinkan penyimpanan data UTF-8 dalam char kolom dan varchar dengan mengonfigurasinya dengan kolase UTF-8 khusus. EF Core 7.0 memperkenalkan dukungan penuh untuk pemetaan ke kolom UTF-8, dan dimungkinkan untuk menggunakannya di versi EF sebelumnya juga, dengan beberapa langkah tambahan.

EF Core 7.0 mencakup dukungan kelas satu untuk kolom UTF-8. Untuk mengonfigurasinya, cukup konfigurasikan jenis kolom ke char atau varchar, tentukan kolase UTF-8 (berakhir dengan _UTF8), dan tentukan bahwa kolom harus Unicode:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<Blog>()
        .Property(b => b.Name)
        .HasColumnType("varchar(max)")
        .UseCollation("LATIN1_GENERAL_100_CI_AS_SC_UTF8")
        .IsUnicode();
}

Kolom Tersebar

Kolom jarang adalah kolom biasa yang memiliki penyimpanan yang dioptimalkan untuk nilai null, mengurangi persyaratan ruang untuk nilai null dengan biaya lebih banyak overhead untuk mengambil nilai non-null.

Sebagai contoh, pertimbangkan hierarki jenis yang dipetakan melalui strategi table-per-hierarchy (TPH). Di TPH, tabel database tunggal digunakan untuk menyimpan semua jenis dalam hierarki; ini berarti bahwa tabel harus berisi kolom untuk setiap properti di seluruh hierarki, dan untuk kolom milik jenis langka, sebagian besar baris akan berisi nilai null untuk kolom tersebut. Dalam kasus ini, mungkin masuk akal untuk mengonfigurasi kolom sebagai jarang, untuk mengurangi persyaratan ruang. Keputusan apakah akan membuat jarang kolom harus dibuat oleh pengguna, dan tergantung pada harapan untuk data aktual dalam tabel.

Kolom dapat dibuat jarang melalui API Fasih:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<RareBlog>()
        .Property(b => b.RareProperty)
        .IsSparse();
}

Untuk informasi selengkapnya tentang kolom jarang, lihat dokumen SQL Server.