2012-05-09 13 views
5

Ich schreibe gerade eine Fakturierungsanwendung mit EF 5 Code zuerst, und ich bekomme einen Fehler, wenn ich die Anwendung ausführen.Entity Framework 5 Ungültiger Spaltenname Fehler

Das Datenbankobjekt in Frage wie folgt:

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

} 

ich vor kurzem ein paar dieser Felder hinzugefügt (Von ClientStartDate bis ClientZipCode sind alle neu), und wenn ich die Anwendung ausführen ich die folgende Fehlermeldung erhalten :

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

Was mich erstaunt, ist, dass meine Datenbank tatsächlich entsprechend aktualisiert hat. Diese Felder sind jetzt auf dem Tisch, aber das gibt mir immer noch einen Fehler.

Irgendwelche Ideen für was hier schief läuft?

EDIT: Ok, da war anscheinend eine Sache, die ich vergessen habe zu erwähnen: SalesforceID ist KEIN Fremdschlüssel. Keine der Spalten, die hinzugefügt wurden, waren tatsächlich FKs. Sie sind nur einfache Felder.

+0

Haben Sie am Ende dieses herauszufinden? –

+0

tat ich eigentlich. Danke, dass du mich daran erinnerst, das Update zu posten. – IronMan84

+0

Ich brauche die Antwort !! @ IronMan84 – Aditi

Antwort

9

Kurz gesagt, sollten Sie die Felder [Erforderlich] DateTime Nullable (DateTime?) Erstellen. Wenn Sie weitere Informationen zum StackTrace und jedem Initialisierungscode bereitstellen, wäre dies hilfreich.

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

Können Sie irgendeine Erklärung anbieten? Das erscheint seltsam, die Lösung zu sein! – noelicus

1

Mein Verdacht ist, dass SalesforceID das Problem verursacht. Versuchen Sie, alle neuen Spalten zu entfernen und einzeln nacheinander hinzuzufügen und dabei nach Fehlern zu suchen. Wenn das Problem in der Tat mit SalesforceID ist, kann this es lösen.

+0

Es ist jedoch kein FK. Und ich habe es mit einem nach dem anderen versucht, und es scheitert immer noch. – IronMan84

+0

Hmm ... Hier sind einige andere Dinge zu sehen. Ist das Problem nur auf diese Klasse beschränkt? Klassen mit Datenanmerkungen, die den Tabellennamen ändern? Können Sie eine identische Klasse erstellen, aber ändern Sie den Namen und sehen Sie, ob Sie immer noch den Fehler erhalten? Verwenden Sie eine Nicht-Beta-Version von EF? –

+0

Ich habe andere Klassen mit den gleichen Anmerkungen, die funktionieren. Und ich bin wieder zu EF 4.3 gewechselt. Immer noch nichts. – IronMan84

6

In meinem Fall ist dieser Fehler passiert, weil ich mein EDMX gegen meine Testdatenbank aktualisiert habe und meinen Code gegen die Produktionsdatenbank laufen lasse.

Verwandte Themen