如何在EF Core 2.1中配置MaxIdentifierLength常量?

时间:2018-07-03 16:45:36

标签: c# postgresql entity-framework-core

从EF 2.0升级到2.1后,我们发现新的迁移会以某种奇怪的方式重新创建FK和索引,从而将其名称缩小为63个字符。另外,MaxIdentifierLength属性位于迁移文件的顶部。我进行了一些研究,但没有找到如何配置默认长度的方法。

1 个答案:

答案 0 :(得分:2)

当前没有流利的API。

但是可以通过RelationalModelAnnotations类进行访问:

var maxIdentifierLength = modelBuilder.Model.Relational().MaxIdentifierLength;

也可以修改:

modelBuilder.Model.Relational().MaxIdentifierLength = newValue;

但我不建议这样做。默认情况下,每个数据库提供程序都设置支持的最大标识符长度(对于SqlServer为128),因此配置更大的值可能会导致无效的表/约束名称和运行时异常。