我正在使用一个首先使用 EF 代码的系统,我想在一个表上使用一些 SQL Server 稀疏列。我目前的解决方案是删除 EF 创建的表并在数据库初始化期间通过脚本重新添加。这是否可以在从 EntityTypeConfiguration 或其他方式继承的类中使用 Fluent API 进行配置?
问问题
1477 次
2 回答
6
如果您使用实体框架迁移,您可以在Up方法中为添加稀疏列的迁移发出类似这样的 SQL 语句:
Sql("alter table TableName alter column ColumnName int sparse");
dbContext.Database.ExecuteSqlCommand
即使您不使用迁移,使用相同 SQL的任何一次性执行都将起作用。
这两种方法都不像您可以通过 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 回答