c# - 有没有办法在运行时使用 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 或忽略该属性?
解决方案
您需要首先添加迁移。dotnet ef 迁移添加 refaceemployee 然后 dotnet ef 数据库更新
推荐阅读
- python - 当定义了两个不同的 ForeignKey 和 unique_together 时,如何减少一个 ForeignKey 的选项?
- elasticsearch - Elasticsearch 只读单节点集群的设置
- java - 如何用computeIfAbsent效率实现Map putIfAbsent语义?
- laravel - 如何在路由之前获取一些数据并将其发送到 laravel 中的路由?
- flutter - 找不到正确的提供者
在此 EditRetailer 小部件上方 - android - 是否可以在编译开始之前知道 LOCAL_SRC_FILES 的值?
- python - DataFrame.info() 与 DataFrame.Series.describe() 不同
- swift - Xcode11,TableView 单元格选择样式不起作用
- angular - 无法绑定到“rangePicker”,因为它不是“mat-date-range-input”的已知属性
- azure-storage - Microsoft.Azure.Storage.Blob v11.1.7 在创建 Queueclient 时抛出异常