Vì vậy, tôi có một lớp học như sau:Bản đồ một trường để một enum trong EntityFramework 5 Mã Đầu tiên
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; }
}
Như bạn có thể thấy, các trường Type là một enum. lập bản đồ của tôi để phù hợp với các dữ liệu vào lớp này được định nghĩa như thế này:
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");
}
}
Nhưng khi tôi chạy mã, tôi nhận được lỗi sau:
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.
Tôi hiểu rằng tôi đang nhận được lỗi vì thuộc tính Type không phải là nguyên thủy, mà là một enum. Tuy nhiên, nếu tôi hiểu chính xác, EF5 hỗ trợ enums (và tôi đang nhắm vào khung công tác .NET 4.5) vì vậy tôi cho rằng tôi thiếu một thứ gì đó trong ánh xạ của mình, không giải thích cách chuyển đổi thành enum, nhưng tôi đang thua lỗ như thế nào. Nếu tôi thay đổi lĩnh vực trở lại một int nó tất cả các công trình tốt, nó chỉ khi loại trường là enum rằng tôi nhận được lỗi.
Tôi đang thiếu gì? Cảm ơn trước.
@overmachine Và lo ... tất cả đều hoạt động ngay bây giờ! Wow, hàng giờ dành cho điều đó mà không nhận thấy. Cám ơn rất nhiều. Bạn có muốn đăng câu trả lời đó không? – BinarySolo