此頁面詳細說明 SQL Server 提供者特定的數據行組態選項。
Unicode 和 UTF-8
SQL Server 2019 引入了 UTF-8 支援,透過將 和 的列設定為特殊的 UTF-8 排序規則,可以在這些列中儲存 UTF-8 資料。 您可以將 UTF-8 資料行搭配使用 EF,只要將資料行的類型設定為 char 或 varchar,指定 UTF-8 定序 (以 結尾), _UTF8並指定資料行應該是 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();
}
稀疏欄位
稀疏欄位是具有優化的 Null 值存儲機制的一般欄位,降低 Null 值的空間需求,但擷取非 Null 值時會增加開銷。
例如,請考慮透過 每階層一表 (TPH) 策略 對應的類型階層。 在 TPH 中,單一資料庫數據表用來保存階層中的所有類型;這表示數據表必須包含整個階層中每個屬性的數據行,而且對於屬於罕見類型的數據行,大部分的數據列都會包含該數據行的 Null 值。 在這些情況下,將數據行設定為 疏鬆可能很合理,以減少空間需求。 是否將欄位設為稀疏必須由使用者決定,並且取決於對資料表中實際數據的預期。
欄位可以透過 Fluent API 設置為稀疏:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<RareBlog>()
.Property(b => b.RareProperty)
.IsSparse();
}
如需稀疏欄的詳細資訊,請參閱 SQL Server 文件。