7

最初に EF コードを使用するシステムで作業しており、テーブルで多数の SQL Server スパース列を使用したいと考えています。私の現在の解決策は、EF によって作成されたテーブルを削除し、データベースの初期化中にスクリプトを介して再追加することです。これはEntityTypeConfigurationなどから継承したクラスでFluent APIで設定できるものでしょうか?

4

2 に答える 2

6

Entity Frameworks 移行を使用する場合は、スパース列を追加する移行のUpメソッドで次のような SQL ステートメントを発行できます。

Sql("alter table TableName alter column ColumnName int sparse");

移行を使用しない場合でもdbContext.Database.ExecuteSqlCommand、同じ SQL を使用した の 1 回限りの実行は機能します。

どちらの方法も、EF を介して型を明示的に構成できる場合ほど優れた方法ではありませんが、テーブル全体を削除して置き換えるよりは優れています。

于 2013-04-17T19:43:56.860 に答える
0

これは、こちらのドキュメントに従って、EF Core 6.0 でサポートされるようになりました。

これは、OnModelCreating で IsSparse を使用して構成できるようになりました。例えば:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder
        .Entity<ForumModerator>()
        .Property(e => e.ForumName)
        .IsSparse();
}
于 2021-11-08T14:02:12.990 に答える