Entity Framework Core在创建全新迁移时保存旧数据



我使用实体框架核心与ASP。. NET Core MVC建立我的网站和数据库之间的连接,使用代码优先的方法。在大多数情况下,它工作得很好。

但是我现在遇到了一个问题,似乎旧数据在某个地方缓存并用于新的迁移。即使我删除了整个迁移文件夹和数据库。我已经得到了不同的错误,由于这个,但一个例子是:

不能添加实体类型'ResourceField'的种子实体,因为没有为所需的属性'ResourceFieldDataLevel'提供值

,这是合理的。我的ResourceField种子不包含ResourceFieldDataLevel

modelBuilder.Entity<ResourceField>().HasData(
new ResourceField { ResourceFieldId = 1, Level = 1,
VillageId = 1, TypeOfResource = ResourceFieldType.Clay },

但这是因为类ResourceField根本不包含该值。

public class ResourceField
{
public ResourceField()
{
}
[Key]
public int ResourceFieldId { get; set; }
public ResourceFieldType TypeOfResource { get; set; }
public int VillageId { get; set; }
public virtual Village Village { get; set; }
public int Level { get; set; }
}

事实是,它做到了。我在测试不同的东西,添加/删除东西。所以在某一点上,有这样一个性质。似乎EF拒绝放弃旧的迁移。因此,继续使用那些已经不存在的东西。

我已经删除了整个迁移文件夹,也删除了数据库,所以它创建的一切都是全新的。

我得到错误后运行:

dotnet ef migrations add InitialCreate

类似的问题已经通过批量构建清理解决了。

我如何使实体框架核心忘记一切已经,只是从我有什么新的开始?我觉得这应该在您删除迁移和数据库时完成。

所以最后似乎是删除迁移和数据库(又一次)。然后注释掉OnModelCreating中包含种子数据的所有部分。

再次删除迁移和数据库。

未注释,它的代码完全相同

相关内容

  • 没有找到相关文章

最新更新