c# - 为什么 EF 会自动运行种子方法?
问题描述
我们使用 ASP .NET 创建 API 驱动的 CMS。有时我们需要用默认数据填充数据库并为此使用 EF 的种子方法。我知道当我们在 Nuget 包管理器控制台中运行 update-database 以及部署时会调用种子,但由于某种原因,一旦项目部署在服务器上,我们的种子方法似乎会调用自身。我们使用 Azure 应用服务来托管我们的 CMS。
有谁知道如何关闭这种自动播种行为?我们没有注意到时间方面的定义模式,只是注意到它发生在我们的数据库重新初始化之后。
解决方案
我认为它必须与迁移有关,但是我不知道您为什么要手动更新数据库,您可以使用迁移来解决这个问题。
1- 转到 Nuget 包管理器控制台。
2-启用迁移。
3-将配置方法设置为自动迁移和数据丢失。
public Configuration()
{
AutomaticMigrationsEnabled = true;
AutomaticMigrationDataLossAllowed = true;
}
4- 将种子方法留空
protected override void Seed(Yourproject.DAL.Yourdbcontext)
{
// This method will be called after migrating to the latest version.
// You can use the DbSet<T>.AddOrUpdate() helper extension method
// to avoid creating duplicate seed data.
}
如果它是你要找的东西,试试这个。
祝你好运
推荐阅读
- vba - 如何将记录集中文本框的值设置为超链接地址?
- c# - 使用 Coypu 禁用 Chrome 自动化扩展
- c# - 关键字 yield 如何记住下一条要执行的指令以及在控制权被归还的那一刻的堆栈帧状态?
- azure - 如何设置函数应用以使用安全传输到存储帐户?
- oracle - OAF 中的页面问题
- linux - 来自管道输出后向断言的子字符串的 Grep
- java - 如何在不包含源的情况下自动构建我的 Docker 映像?
- django - 在服务器启动时建立与(另一台)服务器的连接
- c# - 为什么 Unity Cient 不调用服务器命令?
- c# - SQL是“删除所有记录,然后再次添加”立即不好的做法吗?