2012-05-09 21 views
5

Şu anda EF 5 Code First kullanan bir faturalandırma uygulaması yazıyor ve uygulamayı çalıştırırken bir hatayla karşılaşıyorum.Entity Framework 5 Geçersiz Sütun Adı hatası

aşağıdaki Söz konusu veritabanı nesnesi olarak:

[Table("Client")] 
public class ClientBase 
{ 
    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int ClientID { get; set; } 

    [Required] 
    public string ClientName { get; set; } 

    [Required] 
    public bool IsActive { get; set; } 

    [Required] 
    public string ClientContactName { get; set; } 

    [Required] 
    public string ClientContactEmail { get; set; } 

    [Required] 
    public DateTime ClientStartDate { get; set; } 

    [Required] 
    public string SalesforceID { get; set; } 

    public DateTime TerminatedDate { get; set; } 

    public string ClientStreet { get; set; } 

    public string ClientCity { get; set; } 

    public string ClientState { get; set; } 

    public int? ClientZipCode { get; set; } 

    public virtual List<PropertyBase> Properties { get; set; } 

    public virtual List<ClientCharge> ClientDefaultCharges { get; set; } 

} 

Geçenlerde (ClientStartDate itibaren aşağı hepsi yeni ClientZipCode kadar) bu alanlardan bir demet eklendi ve ben aşağıdaki hatayı alıyorum uygulamayı çalıştırmak zaman :

{"Invalid column name 'ClientStartDate'.\r\nInvalid column name 'SalesforceID'.\r\nInvalid column name 'TerminatedDate'.\r\nInvalid column name 'ClientStreet'.\r\nInvalid column name 'ClientCity'.\r\nInvalid column name 'ClientState'.\r\nInvalid column name 'ClientZipCode'."} 

Veritabanım aslında buna göre güncellenmiş olsa da beni şaşırtıyor. Bu alanlar şimdi masada, ama bu hala bana bir hata veriyor.

Burada yanlış olanlara dair herhangi bir fikir var mı?

DÜZENLEME: Tamam, anladığım kadarıyla bir şey söylemeyi unutmuştum: SalesforceID yabancı anahtar DEĞİLDİR. Eklenen sütunların hiçbiri aslında FK'ler değildi. Onlar sadece düz alanlar.

+0

Sonuç olarak bunu anladınız mı? –

+0

Aslında yaptım. Güncellemeyi göndermemi hatırladığın için teşekkürler. – IronMan84

+0

Cevaba ihtiyacım var! @ IronMan84 – Aditi

cevap

9

[Required] DateTime alanlarınızı Nullable (DateTime?) Yapmayı düşünün. Stacktrace ve herhangi bir Başlangıç ​​kodu hakkında daha fazla bilgi verirseniz yardımcı olacaktır.

[Required] 
public DateTime? ClientStartDate { get; set; } 
+0

Herhangi bir açıklama sunabilir misiniz? Bu çözüm olmak için garip görünüyor! – noelicus

1

Şüphelerim, SalesforceID'nin soruna neden olmasıdır. Tüm yeni sütunları kaldırmayı ve her seferinde birer birer eklemeyi deneyin, giderken hataları kontrol edin. Sorun gerçekten SalesforceID ile yapılmışsa, this bunu çözebilir.

+0

Ancak FK değil. Ve her seferinde bir tane ile denedim, ve hala hepsi başarısız. – IronMan84

+0

Hmm ... Bakacak başka şeyler de var. Sorun sadece bu sınıfa sınırlı mı? Tablo adı değiştirerek veri açıklamaları içeren sınıflar? Aynı bir sınıf oluşturabilir, ancak adı değiştirebilir ve hala hatayı alıp alamayacağınızı görebilir misiniz? EF'in beta olmayan bir sürümünü mi kullanıyorsunuz? –

+0

Çalıştığım aynı ek notlarla başka sınıflarım var. Ve EF 4.3'e geri döndüm. Hala hiçbirşey. – IronMan84

6

Benim durumumda, bu hata, EDMX'imi test veritabanım karşı güncellediğim ve kodumu üretim veritabanına karşı çalıştırdığım için oldu.

İlgili konular