实体框架 5 列名无效错误
本文关键字:无效 错误 框架 实体 | 更新日期: 2023-09-27 18:33:34
我目前正在使用 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; }
}
我最近添加了一堆这样的字段(从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'."}
不过,令我惊讶的是,我的数据库实际上已经相应地更新了。这些字段现在在桌面上,但这仍然给我一个错误。
对这里出了什么问题有什么想法吗?
编辑:好吧,显然有一件事我忘了提到:SalesforceID不是外键。添加的列实际上都不是 FK。它们只是普通的田野。
简而言之,考虑将 [必需] 日期时间字段设置为可为空(日期时间?)。 如果您提供有关堆栈跟踪和任何初始化代码的更多信息,这将很有帮助。
[Required]
public DateTime? ClientStartDate { get; set; }
就我而言,发生此错误是因为我正在针对测试数据库更新EDMX,并针对生产数据库运行代码。
我怀疑是SalesforceID导致了这个问题。尝试删除所有新列,然后一次重新添加一列,并随时检查错误。如果问题确实出在SalesforceID上,这可能会解决它。