Yani EntityFramework 5 Kod İlk bir enum bir alan Harita: Gördüğünüz gibişöyle bir sınıf var,
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; }
}
, Tür alanı bir enum olan. Bu sınıfa verileri eşleştirmek için My haritalama böyle tanımlanır:
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");
}
}
Ama kodu çalıştırdığınızda, aşağıdaki hatayı alıyorum:
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.
ben hata alıyorum anlıyorum Type özelliği bir ilkel değil, bir enum olarak. Doğru bir şekilde anladığım halde, EF5, enumları destekliyor (ve ben de .NET 4.5 çerçevesini hedefliyorum), bu yüzden, enum'a nasıl dönüştürüleceğini açıklayan bir haritalamada eksik olan bir şeyi kaçırdığımı varsayalım. ne olduğuyla ilgili. Alanı bir int olarak değiştirirseniz, her şey iyi çalışır, yalnızca alan türü hatayı alıyorum enum olduğu zaman.
Neyi eksik? Şimdiden teşekkürler.
@overmachine Ve şimdi ... her şey çalışıyor! Vay, saatler farketmeden harcadı. Çok teşekkürler. Bunu bir cevap olarak göndermek ister misiniz? – BinarySolo