You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 02:44:37