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.他们只是平原.
简而言之,请考虑使[Required] DateTime字段为Nullable(DateTime?).如果您提供有关堆栈跟踪和任何初始化代码的更多信息,那将会很有帮助.
[Required]
public DateTime? ClientStartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)