EF Core 8中重写身份表属性/列无效果的问题求助
EF Core 8中重写身份表属性/列无效果的问题求助
我正在EF Core 8里重写IdentityRole、IdentityClaim这类身份框架的类,但发现不管用Fluent API还是数据注解来配置某些字段,这些配置完全没生效,实在卡在这里了。
我重写IdentityRole<Guid>的类代码如下:
public class AccountRole : IdentityRole<Guid> { }
然后用Fluent API做了这些配置:
entity.Property(e => e.Name) .ValueGeneratedNever() .HasDefaultValue<string>(null) // 无法覆盖默认设置——默认是允许为空 .HasMaxLength(100) // 无法覆盖默认设置——默认长度是256 .IsRequired(true); entity.Property(e => e.NormalizedName) .ValueGeneratedNever() .HasDefaultValue<string>(null) // 无法覆盖默认设置——默认是允许为空 .HasMaxLength(100) // 无法覆盖默认设置——默认长度是256 .IsRequired(true);
就拿Name和NormalizedName这两个字段来说,我设置了HasMaxLength(100)、IsRequired(true)还有HasDefaultValue(null),但生成的数据库脚本里,它们还是保持着默认的256长度、允许为空的状态,完全没覆盖掉默认配置。
我根本不需要角色名有256这么长的最大长度,如果能把这些字段的配置改过来,后续给这些表建索引的性能也能提升不少。但现在就是搞不懂为什么这些配置不生效……
备注:内容来源于stack exchange,提问作者Deukalion
相关产品推荐
相关产品推荐

