实体框架& MySQL - 密钥中使用的BLOB / TEXT列没有密钥长度

时间:2016-02-29 17:44:43

标签: c# mysql entity-framework

我的问题: 使用实体框架与MySQL,我不断得到错误" BLOB / TEXT在密钥规范中使用没有密钥长度"。 我将[StringLength(20)]和[MaxLength(20)]和[Column(TypeName =" nvarchar")]添加到我唯一的字符串类型[Key]中,没有任何进展。

我发现了其他对这个问题的引用,但它们都已经过时了;几年前Connector / Net出现了与此相关的问题,这些问题已经解决。

2 个答案:

答案 0 :(得分:1)

最终的解决方案: 尽管有错误信息,但它根本不是[Key]问题。

我曾在一些字符串类型的列上使用[Index],与具有[Key]属性的列不同,EF不会自动将这些列设置为有限长度的nvarchar类型。 用[MaxLength(255)]属性装饰那些列,MySQL很高兴。

答案 1 :(得分:0)

OP 设置 [MaxLength(255)] 属性的解决方案似乎不适用于 EF Core。我能够通过将列类型从 text 修改为 varchar(255) 来解决该问题。