首页 > 解决方案 > 有没有办法在运行时使用 Entity Framework Core(代码优先)将旧版本模型实例添加到数据库?

问题描述

假设我们创建了一个类

public class Employee 
{
   public int Id { get; set; }
   public string FirstName { get; set; }
}

我们添加并应用我们的第一个迁移(当然,我们将 DbSet 添加到 ApplicationDbContext)。

然后我们在类中添加一个新字段:

public class Employee 
{
   public int Id { get; set; }
   public string FirstName { get; set; }
   public string Note { get; set; } // ***NEW FIELD***
}

我们可以添加我们的第二个迁移,只是不要应用它。

有没有办法将新版本的 Employee 添加到旧的状态数据库中?

dbContext.Employees.Add(new Employee { FirstName = "John" });

这会引发关于数据库中不存在“注释”列的错误(并且应该)。

只是想知道有没有办法在运行时传递旧版本的 Employee 或忽略该属性?

标签: c#entity-framework-core

解决方案


您需要首先添加迁移。dotnet ef 迁移添加 refaceemployee 然后 dotnet ef 数据库更新


推荐阅读