如何在 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 包
上的扩展方法
在以前的 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 包
上的扩展方法