2011-04-19 74 views
3

當我想通過實體框架連接到MySQL(代碼第一次)我得到這個錯誤:問題與MySQL TINYINT和Entity Framework代碼首先

 
(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科拉姆的名稱是權限與TINYINT數據類型。下面是我的課。

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

回答

0

根據這一table,你應該使用sbyte作爲Author.Permission類型。

+0

它不工作。當我使用sbyte時,我將面臨這個錯誤:沒有對應於原始類型'SByte'的EDM類型'Edm.SByte'的存儲類型。 – 2011-04-19 15:33:27

+0

您確定您使用的是最新的[connector](http://www.mysql.com/downloads/connector/net)嗎? – 2011-04-19 15:47:07

+0

是的,我使用MySQL Connector/Net 6.3.6 – 2011-04-19 16:00:27

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; } 
} 
+0

它不工作! – 2011-07-07 10:43:35

+0

您使用的是什麼版本的EF?你使用的是哪個數據庫? – OpticalDelusion 2011-07-07 16:35:51

+0

MySQL Connector/Net 6.4.3和MySQL Server 5.5.14 – 2011-07-09 05:05:29

相關問題