Quindi, ho una classe come segue:Mappa un campo per un enum in EntityFramework 5 Codice Prima
public class Message {
public enum MessageType {
Text = 0,
Audio = 1,
Image = 2
}
public int Uid { get; set; }
public MessageType Type { get; set; }
public String Text { get; set; }
}
Come si può vedere, il campo Tipo è un enum. La mia mappatura di abbinare i dati per questa classe è definita in questo modo:
public class MessagesMap : EntityTypeConfiguration<Message> {
public MessagesMap() {
// Primary Key
this.HasKey(t => t.Uid);
// Properties
this.Property(t => t.Text)
.HasMaxLength(1000);
// Table & Column Mappings
this.ToTable("wc_messages");
this.Property(t => t.Uid).HasColumnName("UID");
this.Property(t => t.Type).HasColumnName("Type");
this.Property(t => t.Text).HasColumnName("Text");
}
}
Ma quando si esegue il codice, ottengo il seguente errore:
The property 'Type' is not a declared property on type 'Message'. Verify that the property has not been explicitly excluded from the model by using the Ignore method or NotMappedAttribute data annotation. Make sure that it is a valid primitive property.
Capisco che sto ottenendo l'errore come la proprietà Type non è un primitivo, ma un enum. Se capisco correttamente, EF5 supporta l'enumerazione (e sto prendendo di mira il framework .NET 4.5) quindi presumo che mi manchi qualcosa nella mia mappatura che non spiega come convertire l'enum, ma sono in perdita per quello che è. Se cambio il campo di nuovo in un int funziona tutto bene, è solo quando il tipo di campo è l'enum che ottengo l'errore.
Cosa mi manca? Grazie in anticipo.
@overmachine E lo ... tutto funziona ora! Wow, le ore passate su questo senza accorgersene. Grazie mille. Vuoi postarlo come risposta? – BinarySolo