简体   繁体   English

如何在 Entity Framework Core 中生成空迁移?

[英]How to generate empty migration in Entity Framework Core?

I am using EF Core migrations to upgrade my database schema and my data.我正在使用 EF Core 迁移来升级我的数据库架构和数据。

As I write new C# code, I need to change the data in my different database environments: development, test, industrialisation, staging and production.当我编写新的 C# 代码时,我需要更改不同数据库环境中的数据:开发、测试、工业化、暂存和生产。

Because I don't want to execute a SQL script in as many environments I have, my goal is to put some data migration in a C# migration.因为我不想在尽可能多的环境中执行一个 SQL 脚本,所以我的目标是将一些数据迁移放在一个 C# 迁移中。 Then the data migration will be executed with the other schemas migrations.然后数据迁移将与其他模式迁移一起执行。 Preventing me from forgetting.防止我忘记。

How can I create an empty C# migration script to change my data with calling SQL, even if I have no database change?如何创建一个空的 C# 迁移脚本来通过调用 SQL 更改我的数据,即使我没有更改数据库?

You can create an empty migration with the following command in the Package Manager Console:您可以在 Package 管理器控制台中使用以下命令创建空迁移:

Add-Migration '[Insert name]'

Your new migration file will look like this:您的新迁移文件将如下所示:

public partial class [Insert name]: Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        
    }

    protected override void Down(MigrationBuilder migrationBuilder)
    {
        
    }
}

Without any changes in data models, when you run the below command, there will be an empty migration file.在不更改数据模型的情况下,当您运行以下命令时,将出现一个空的迁移文件。 Then you can put the data manipulation sql code in Up method and revert sql code in Down method:然后,您可以将数据操作 sql 代码放在Up方法中,并将 sql 代码放在Down方法中:

cli:客户端:

dotnet ef migrations add [migrationName]

package manager console: package 管理员控制台:

Add-Migration [migrationName]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM