entity-framework - 自动迁移不起作用 [EF Core]
问题描述
我试图在我的项目中自动迁移,所以添加了 2 行
_context.Database.Migrate();
_context.Database.EnsureCreated;
但我在我的数据库中看不到任何更新。为什么?
解决方案
自动迁移已从 EF Core 中删除。EF Core 2.0 中不存在此功能。没有计划将此功能添加到 EF。微软认为它的好处小于它的缺点。
EF Core 2.0 中有两种与迁移相关的方法。Database.Migrate()
和Database.EnsureCreated()
。它们都不是完整的迁移。
Migrate()
不添加或创建迁移。它只检查是否存在任何未应用的迁移。如果是,则根据它们更新数据库。
EnsureCreated()
根据项目中的模型创建数据库。但它并没有以迁移的方式做到这一点。这种方法实际上不需要迁移。这种方法的缺点是它创建的数据库将来不能通过任何迁移进行更新。事实上,这种方法被添加到 EF 以帮助人们以 MVP 风格快速创建项目。
结论:首先添加迁移,然后更新数据库(Database.Migrate())
推荐阅读
- python - 如何让 VSCode 的终端识别 python
- ethereum - 警告:函数状态的可变性可以限制为纯函数
- visual-studio-code - vscode 用诗歌测试发现(src 布局)
- python - 在一列上进行复杂转换,同时在 Python/Pandas 中保留原始列
- windows - 如何将 EXE 构建部署到 Amazon Web Service?
- javascript - 如何为哈希表查找键实现基于 3 位的哈希函数?
- python - 锁定线程并创建新游标无法解决 sqlite3“不允许递归使用游标”
- reactjs - React 应用程序的结构可以隐藏在登录后面吗?
- flutter - 在 Flutter 的磁贴中有条件地显示/隐藏复选框
- function - Delphi函数将枚举转换为字符串列表......?