我的 [Column(TypeName=“varchar(10)”)] 不起作用

My [Column(TypeName="varchar(10)")] does not work

提问人:Chiến Trần 提问时间:10/16/2023 最后编辑:marc_sChiến Trần 更新时间:10/17/2023 访问量:70

问:

我将属性设置为 to,但当我运行时它是 。benefitID[Column(TypeName="varchar(10)")]benefitnvarchar(450)

[Key]
[Column(TypeName="varchar(10)")]
[StringLength(20)]
[Required]
private string benefitID;
private string benefitContent;//nội dung quyền lợi
public virtual ICollection<Job> Jobs { get; set; }

public string BenefitID { get => benefitID; set => benefitID = value; }
public string BenefitContent { get => benefitContent; set => benefitContent = value; }

public Benefit() 
{
    Jobs = new HashSet<Job>();
}

我希望跑步时是.benefitvarchar(10)

C# 实体框架 数据批注

评论

1赞 Panagiotis Kanavos 10/16/2023
该属性不会更改现有表列的类型。它也不会覆盖任何显式迁移脚本
0赞 Panagiotis Kanavos 10/16/2023
该表是否已存在?或者您是使用迁移来创建它?如果是这样,如何应用迁移?
1赞 Panagiotis Kanavos 10/16/2023
EF 不会使用任意数字(如 450)作为列大小。这是在应用程序或表创建脚本中指定的。
3赞 Peter B 10/16/2023
据我所知,EF 属性必须放置在公共属性上,而不是放在这些属性的私有支持字段上。
0赞 Hogan 10/16/2023
varchar(10) 表示大小是 10,stringlenght(20) 表示大小是 20 -- 这是哪个?

答: 暂无答案