如何解决实体框架数据库优先 - 如何防止运行初始迁移?
我最近能够使用 EF Core 搭建一个现有的数据库。我们希望完全迁移到 EF Core,但我们遇到了一些障碍,我需要您的帮助。
我们从运行 scaffold 命令开始,最终得到这个文件结构
C:\>ls .\EFCore
Context
Models
EFCore.csproj
然后在创建上下文和模型之后,我运行了初始迁移命令。
dotnet ef migrations add CreateDb
运行该命令后,我们的目录如下所示
C:\>ls .\EFCore
Context
Models
Migrations
EFCore.csproj
C:\>ls .\EFCore\Migrations
20210616210256_CreateDb.cs
20210616210256_CreateDb.Designer.cs
DbContextModelSnapshot.cs
我的问题
数据库已经在所有环境中创建,所以我们不希望实体执行初始数据库迁移。我应该删除 20210616210256_CreateDb.cs
和 20210616210256_CreateDb.Designer.cs
以实现此目的吗?
我能想到的另一种方法是创建 __EFMigrationsHistory
表并在其中插入一行。这会假装我们已经运行了初始数据库创建。
请帮忙,我想以最干净的方式做到这一点。
解决方法
删除/注释迁移文件的 Up() 和 Down() 方法中的代码并调用更新数据库。您不想要创建表格的代码,即
CreateTable(
"dbo.YourTable",c => new
{ //Properties set here })
您的迁移类可能如下所示 -
public partial class Initial : DbMigration
{
public override void Up()
{
}
public override void Down()
{
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。