2012-05-09 22 views
5

Actualmente estoy escribiendo una aplicación de facturación utilizando EF 5 Code First, y me aparece un error cuando estoy ejecutando la aplicación.Entity Framework 5 Invalid Column Name error

El objeto de base de datos en cuestión es la siguiente:

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

} 

recientemente he añadido un montón de esos campos (De ClientStartDate a ClientZipCode son todos nuevos), y cada vez que ejecutar la aplicación me sale el siguiente error :

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

Lo que me sorprende, sin embargo, es que mi base de datos en realidad se ha actualizado en consecuencia. Esos campos están ahora sobre la mesa, pero esto todavía me da un error.

¿Alguna idea de qué está pasando mal aquí?

EDITAR: Ok, aparentemente había una cosa que olvidé mencionar: SalesforceID NO es una clave externa. Ninguna de las columnas que se agregaron en realidad eran FK. Son solo campos simples.

+0

¿Terminaste pensando en esto? –

+0

Lo hice, en realidad. Gracias por recordarme que publique la actualización. – IronMan84

+0

¡¡Necesito la respuesta !! @ IronMan84 – Aditi

Respuesta

9

En resumen, considere hacer que sus campos [Fecha requerida] Nullable (DateTime?). Si proporciona más información sobre stacktrace y cualquier código de inicialización, sería útil.

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

¿Puede ofrecer alguna explicación? ¡Esto parece extraño para ser la solución! – noelicus

1

Mi sospecha es que SalesforceID está causando el problema. Intente eliminar todas las columnas nuevas y volver a agregarlas de a una por vez, para detectar errores a medida que avanza. Si el problema es efectivamente con SalesforceID, this puede resolverlo.

+0

No es un FK, sin embargo. Y lo he intentado con uno a la vez, y todavía falla. – IronMan84

+0

Hmm ... Aquí hay algunas otras cosas para mirar. ¿El problema se limita solo a esta clase? ¿Clases con anotaciones de datos que modifican el nombre de la tabla? ¿Puedes crear una clase idéntica pero cambiar el nombre y ver si sigues recibiendo el error? ¿Utiliza una versión no beta de EF? –

+0

Tengo otras clases con las mismas anotaciones que funcionan. Y cambié a EF 4.3. Aún nada. – IronMan84

6

En mi caso, este error ocurrió porque estaba actualizando mi EDMX contra mi base de datos de pruebas y ejecutando mi código en la base de datos de producción.

Cuestiones relacionadas