实体框架 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。它们只是普通的田野。

实体框架 5 列名无效错误

简而言之,考虑将 [必需] 日期时间字段设置为可为空(日期时间?)。 如果您提供有关堆栈跟踪和任何初始化代码的更多信息,这将很有帮助。

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

就我而言,发生此错误是因为我正在针对测试数据库更新EDMX,并针对生产数据库运行代码。

我怀疑是SalesforceID导致了这个问题。尝试删除所有新列,然后一次重新添加一列,并随时检查错误。如果问题确实出在SalesforceID上,这可能会解决它。