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. Anda dapat menggunakan kolom UTF-8 dengan EF hanya dengan mengonfigurasi jenis kolom ke char atau varchar, tentukan kolase UTF-8 (diakhir dengan _UTF8), dan menentukan 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 jarang

Kolom jarang adalah kolom biasa yang penyimpanannya dioptimalkan untuk mengurangi kebutuhan ruang nilai null, meskipun memerlukan lebih banyak overhead saat mengambil nilai yang bukan null.

Sebagai contoh, pertimbangkan hierarki jenis yang dipetakan melalui strategi tabel-per-hierarki (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 kolom menjadi berjarak harus dibuat oleh pengguna, dan tergantung pada harapan terhadap data sebenarnya dalam tabel.

Sebuah kolom dapat diatur menjadi sparse melalui Fluent API.

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

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