如何在 EF Core 中配置固定长度的列?

How do I configure fixed length columns in EF Core?

在以前的 EF 中,我可以这样做:

  entityTypeBuilder
    .Property(b => b.Foo)
    .IsRequired()
    .HasMaxLength(10)
    .IsFixedLength();

这将生成类似

的迁移
Foo = c.String(nullable: false, maxLength: 10, fixedLength: true)

但是在 EF Core 中没有 IsFixedLength()

还有其他方法吗?

目前(EF Core 1.1.0)您只能直接指定列类型:.HasColumnType("char(123)")

请确保您的数据库引擎理解这个值!它通过了 "as is".

另请注意,您应在此处填写所有必需的 dimension/length/precision 值,因为 .HasMaxLength() 值将被忽略。

实际上,对于 2.1 版,这是实现为:

entity.Property(e => e.Name).HasMaxLength(X).IsFixedLength();

对于像我今天早些时候那样遇到这个问题的任何人,如果您正在寻找 IsFixedLength() 函数,它是 RelationalPropertyBuilderExtensions class in the Microsoft.EntityFrameworkCore.Relational

上的扩展方法