【发布时间】:2022-01-09 12:05:30
【问题描述】:
我从数据库中删除了名为 Company 的表中的 company_location_id 列。 然后我从模型类中删除了属性 CompanyLocationId。 但我遇到了错误。
public DbSet<Company> Company { get; set; }
我在 DBContext 类中设置的以上属性。
//[Column("company_location_id")]
//[ForeignKey(nameof(CompanyLocation))]
//public int? CompanyLocationId { get; set; }
[Column("created_by")]
[ForeignKey(nameof(AppUser))]
public int CreatedBy { get; set; }
[Column("creation_date")]
public DateTime CreationDate { get; set; }
我评论了上面的属性,因为我从表中删除了该列。
但是从公司表中获取数据时,我遇到了错误。仅供参考,我正在使用存储库设计模式和实体框架。
【问题讨论】:
-
查看堆栈跟踪以了解错误来自何处,如果您仍需要帮助,请将损坏的代码添加到您的问题中。如果没有看到任何代码或任何东西,我们将无法帮助您。
-
您遇到的错误是什么原因造成的?可以附上代码吗?
-
@Conman_123 我添加了一些代码,以便您了解。
-
Entity Framework 为您的数据库维护一个单独的模型(与您的类模型一起),并使用它来生成查询。如果在不更新模型的情况下删除列,则会出现这种错误。使用 Code First,您应该首先注释/删除属性,通过创建迁移更新模型,然后(最后一件事)针对数据库运行该迁移以删除列。手动更新数据库不是代码优先,可能会破坏。
-
@phuzi 非常准确地回答了您的问题。对模型进行任何更改后,您应该添加迁移并更新数据库以避免任何此类错误。
标签: entity-framework asp.net-core entity-framework-core