2011-04-19 3 views
3

Quand je veux me connecter à MySQL par Entity Framework (premier code) je reçois cette erreur:problème avec MySQL tinyint et le code Entity Framework premier

 
(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'. 

Le nom de Colum dans db est l'autorisation avec tinyint type de données. et le dessous est ma classe.

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

Répondre

0

Selon cette table, vous devriez utiliser sbyte que le type Author.Permission.

+0

Son fonctionne pas. quand j'utilise sbyte je vais faire face à cette erreur: Il n'y a pas de type de magasin correspondant au type EDM 'Edm.SByte' du type primitif 'SByte'. –

+0

Etes-vous sûr d'utiliser le connecteur le plus récent (http://www.mysql.com/downloads/connector/net)? –

+0

Oui, j'utilise MySQL Connector/Net 6.3.6 –

0

Le mappez-vous explicitement à l'aide de l'API Fluent ou de quelque chose? Parce que je viens de faire du code et quand EF Code First a généré mes tables de base de données, il a utilisé tinyint automatiquement. Edit: Je l'ai fait à nouveau avec le mappage API Fluent suivant et cela fonctionnait encore parfaitement.

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

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

Cela ne fonctionne PAS! –

+0

Quelle version de EF utilisez-vous? Quelle base de données utilisez-vous? – OpticalDelusion

+0

MySQL Connector/Net 6.4.3 et MySQL Server 5.5.14 –

Questions connexes