所以,我有一堂课如下:
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; }
}
如您所见,Type 字段是一个枚举。我将数据与此类匹配的映射定义如下:
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");
}
}
但是当我运行代码时,我收到以下错误:
属性“类型”不是类型“消息”的声明属性。使用 Ignore 方法或 NotMappedAttribute 数据注释验证该属性是否已从模型中显式排除。确保它是有效的原始属性。
我知道我收到了错误,因为 Type 属性不是原语,而是枚举。但是,如果我理解正确,EF5 支持枚举(并且我的目标是 .NET 4.5 框架),所以我认为我在映射中遗漏了一些没有解释如何转换为枚举的内容,但我不知所措至于那是什么。如果我将字段改回 int 一切正常,只有当字段类型是枚举时,我才会收到错误。
我错过了什么?提前致谢。