2012-05-09 21 views
5

Attualmente sto scrivendo un'applicazione di fatturazione utilizzando EF 5 Code First e sto riscontrando un errore quando eseguo l'applicazione.Entity Framework 5 Errore Nome colonna non valido

L'oggetto di database in questione è la seguente:

[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; } 

} 

Recentemente ho aggiunto un po 'di quei campi (Da ClientStartDate fino a ClientZipCode sono tutti nuovi), e ogni volta che eseguo l'applicazione ottengo il seguente errore :

{"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'."} 

Ciò che mi stupisce, tuttavia, è che il mio database è stato aggiornato di conseguenza. Quei campi sono ora sul tavolo, ma mi sta ancora dando un errore.

Qualche idea per cosa sta andando male qui?

EDIT: Ok, apparentemente c'era una cosa che ho dimenticato di menzionare: SalesforceID NON è una chiave estranea. Nessuna delle colonne aggiunte era in realtà FK. Sono solo campi semplici.

+0

Hai finito per capirlo? –

+0

L'ho fatto, in realtà. Grazie per avermi ricordato di pubblicare l'aggiornamento. – IronMan84

+0

Ho bisogno della risposta !! @ IronMan84 – Aditi

risposta

9

In breve, si consideri rendere Nullable (DateTime?) I campi Date [Date richieste]. Se fornisci ulteriori informazioni sullo stacktrace e su qualsiasi codice di inizializzazione, sarebbe utile.

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

Puoi offrire qualche spiegazione? Sembra strano essere la soluzione! – noelicus

1

Il mio sospetto è che SalesforceID stia causando il problema. Prova a rimuovere tutte le nuove colonne e ad aggiungerle una alla volta, controllando gli errori man mano che procedi. Se il problema riguarda effettivamente SalesforceID, è possibile risolverlo con this.

+0

Non è un FK, però. E l'ho provato uno alla volta, e tutto fallisce ancora. – IronMan84

+0

Hmm ... Ecco alcune altre cose da guardare. Il problema è limitato a questa classe? Classi con annotazioni di dati che modificano il nome della tabella? Puoi creare una classe identica ma cambiare il nome e vedere se ottieni ancora l'errore? Utilizzare una versione non beta di EF? –

+0

Ho altre classi con le stesse annotazioni che funzionano. E sono tornato a EF 4.3. Ancora niente. – IronMan84

6

Nel mio caso questo errore si è verificato perché stavo aggiornando il mio EDMX sul mio database di test e eseguendo il mio codice con il database di produzione.

Problemi correlati