Also, ich eine Klasse wie folgt:Karte ein Feld zu einem Enum in EntityFramework 5-Code Erste
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; }
}
Wie Sie sehen können, das Feld Typ eine Enumeration ist. Meine Zuordnung der Daten zu dieser Klasse zusammenpassen wird wie folgt definiert:
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");
}
}
Aber wenn ich den Code ausführen, bekomme ich folgende Fehlermeldung:
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.
Ich verstehe ich erhalte den Fehler da die Type-Eigenschaft kein primitives, sondern eine enum ist. Wenn ich das richtig verstehe, unterstützt EF5 enums (und ich ziele auf das .NET 4.5-Framework ab), also nehme ich an, dass etwas in meinem Mapping fehlt, das nicht erklärt, wie man in das Enum konvertiert, aber ich bin ratlos was das ist. Wenn ich das Feld zurück zu einem int ändere, funktioniert alles gut, nur wenn der Feldtyp die enum ist, bekomme ich den Fehler.
Was fehlt mir? Danke im Voraus.
@overmachine Und lo ... es funktioniert alles jetzt! Wow, Stunden damit verbracht, ohne es zu merken. Vielen Dank. Möchtest du das als Antwort posten? – BinarySolo