MySQL tinyint和Entity Framework代码首先出现问题

时间:2011-04-19 14:41:05

标签: mysql entity-framework ef-code-first

当我想通过Entity框架(代码优先)连接到MySQL时,我收到此错误:

(22,12) : error 2019: Member Mapping specified is not valid. The type 'Edm.Byte[Nullable=False,DefaultValue=]' of member 'Permission' in type 'News.Models.Author' is not compatible with 'MySql.tinyint[Nullable=False,DefaultValue=]' of member 'Permission' in type 'CodeFirstDatabaseSchema.Author'.

db中colum的名称是具有tinyint数据类型的Permission。以下是我的班级。

   public class Author
    {
     ...
     public byte Permission { get; set; }
     ...
    }

3 个答案:

答案 0 :(得分:2)

它已在Connector / Net 6.4.5中修复,尚未推出。

http://bugs.mysql.com/bug.php?id=62135

答案 1 :(得分:0)

根据此table,您应该使用sbyte作为Author.Permission类型。

答案 2 :(得分:0)

您是使用Fluent API显式映射它还是其他什么?因为我只是运行代码,当EF Code First生成我的数据库表时,它自动使用tinyint。

编辑:我使用以下Fluent API映射再次完成它,它仍然完美无缺。

mb.Entity<TestObject>()
  .Property(u => u.test)
  .HasColumnType("tinyint");

public class TestObject
{
  public long ID { get; set; }
  public byte test { get; set; }
}