实体框架5无效的列名称错误

Iro*_*n84 6 c# entity-framework ef-code-first

我目前正在使用EF 5 Code First编写计费应用程序,当我运行应用程序时遇到错误.

有问题的数据库对象如下:

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

}
Run Code Online (Sandbox Code Playgroud)

我最近添加了一堆这些字段(从ClientStartDate到ClientZipCode都是新的),每当我运行应用程序时,我都会收到以下错误:

{"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'."}
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我的数据库实际上已相应更新.这些字段现在摆在桌面上,但这仍然给我一个错误.

对于这里出了什么问题的任何想法?

编辑:好的,显然有一件事我忘了提到:SalesforceID不是外键.没有添加的列实际上是FK.他们只是平原.

kin*_*ngo 9

简而言之,请考虑使[Required] DateTime字段为Nullable(DateTime?).如果您提供有关堆栈跟踪和任何初始化代码的更多信息,那将会很有帮助.

[Required]
public DateTime? ClientStartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)


CLR*_*BTH 7

在我的情况下发生此错误是因为我正在针对我的测试数据库更新我的EDMX并针对生产数据库运行我的代码.