2013-03-21 25 views
9

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.

+0

@overmachine Ve şimdi ... her şey çalışıyor! Vay, saatler farketmeden harcadı. Çok teşekkürler. Bunu bir cevap olarak göndermek ister misiniz? – BinarySolo

cevap

18

Öyle görünüyor ki ben sadece aptalım ve enum bloğumun POCO sınıfının içinde ilan edildiğini ve tamamen fark etmediğini gördüm. Fark ettim ki, @overmachine'den (sonradan ortadan kayboldu) gelen bir ninja yorumu sayesinde ve sınıfımdan çıkan bildiriyi taşıyarak her şeyin tekrar iyi çalışmasına neden oldu. Teşekkürler nereye giderse gidin, ve ders daha dikkatli olmak için öğrendim iç geçirdi

+5

Sadece sen değilsin. Cevap için teşekkürler – Andiih