2011-08-01 26 views
0

我先在EF 4.1 Update 1中使用MySQL和6.4.3 .NET连接器。我得到以下异常:(0x80004005):列'ModelHash'的列长度过大

MySql.Data.MySqlClient.MySqlException(0X80004005):柱长太 大列 'ModelHash'(最大值= 21845);改用BLOB或TEXT

如何告知EF使用文字?

回答

2

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

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连接器中的错误。

+0

是的,它不是我的专栏,确实来自EdmMetaData。所以我仍然在寻找解决方案或解决方法。我不能相信我是唯一有此问题的EF/MySQL用户。 :-) – TheEdge