(0x80004005):列'ModelHash'的列长度太大

时间:2011-08-01 02:49:14

标签: mysql entity-framework

我首先在EF 4.1 Update 1中使用MySQL代码和6.4.3 .NET连接器。我得到以下异常:

  

MySql.Data.MySqlClient.MySqlException(0x80004005):列长度也是   专栏'ModelHash'大(最大= 21845);使用BLOB或TEXT代替

如何告诉EF使用文字?

1 个答案:

答案 0 :(得分:3)

您可以在映射中更改数据库类型:

public class YourDbContext : DbContext
{
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);
        modelBuilder.Entity<YourEntityType>().Property(e => e.ModelHash).HasColumnType("TEXT");
    }
}

或使用数据注释

public class YourEntityType
{
    [Column(TypeName = "TEXT")]
    public string ModelHash { get; set; }
}

但我怀疑ModelHash不是你的专栏,不是吗?它听起来像EdmMetadata表中的列,在这种情况下,您可能无法以这种方式控制它。这可能是EF或MySQL连接器中的错误。