使用EF Code First Fluent API时如何将数据库列设置为"稀疏"?

cRe*_*lts 6 entity-framework sparse-matrix code-first dbcontext

我正在使用一个首先使用EF代码的系统,我想在表上使用许多SQL Server稀疏列.我目前的解决方案是删除EF创建的表,并在数据库初始化期间通过脚本重新添加.这是可以在从EntityTypeConfiguration或其他方式继承的类中使用Fluent API配置的吗?

Edw*_*rey 6

如果您使用实体框架迁移,您可以在Up方法中为添加稀疏列的迁移发出这样的 SQL 语句:

Sql("alter table TableName alter column ColumnName int sparse");
Run Code Online (Sandbox Code Playgroud)

即使您不使用迁移,使用dbContext.Database.ExecuteSqlCommand相同 SQL 的任何一次性执行都将起作用。

这两种方法都不像您可以通过 EF 显式配置类型那样好,但它们仍然比删除和替换整个表要好。