Entity Framework & MySQL - 键中使用的 BLOB/TEXT 列,不带键长度
本文关键字:TEXT BLOB amp Framework MySQL Entity | 更新日期: 2023-09-27 18:36:41
我的问题:将实体框架与MySQL一起使用,我不断收到错误"在密钥规范中使用BLOB/TEXT而没有密钥长度"。我将 [StringLength(20)] 和 [MaxLength(20)] 和 [Column(TypeName="nvarchar")] 添加到我唯一的字符串类型 [Key] 中,没有任何进展。
我找到了对此问题的其他引用,但它们都已过时;几年前连接器/网络中存在与此相关的问题,现已修复。
最终的解决方案:尽管有错误消息,但这根本不是 [Key] 问题。
我也在一些字符串类型的列上使用过 [Index],与具有 [Key] 属性的列不同,EF 不会自动将它们设置为长度有限的 nvarchar 类型。用属性 [MaxLength(255)] 装饰这些列,MySQL 很高兴。
OP 设置 [MaxLength(255)] 属性的解决方案似乎不适用于 EF Core。 我能够通过将列类型从text
修改为varchar(255)
来解决问题。