Skip to content

Seed database with data

Create migration

To seed database with data, add a new migration dotnet ef migrations add SeedBook

In the migration, add

csharp
public partial class SeedBook : Migration
{
    /// <inheritdoc />
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.InsertData(
            "book",
            columns: new[] { "title", "author", "publication_year" },
            values: new object[,]
            {
                { "Practical C#", "Alan", "2025" },
            });
    }

    /// <inheritdoc />
    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.DeleteData(
            "book",
            "title",
            "Practical C#"
        );
    }
}

Run migration

Run the migration
dotnet ef database update

alt text

Seed data using insert scripts

Sometimes, we may have/want to use insert scripts instead. In that case, in Migrations folder, create a Scripts folder. In Scripts folder, create SeedBook.sql.

sql
insert into book (title, author, publication_year)
values ('Practical C#', 'Alan', '2025');


Then migration file

csharp
public partial class SeedBook : Migration
{
    /// <inheritdoc />
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        var sqlFile = Path.Combine("Migrations/Scripts/Up/SeedBook.sql"); 
        migrationBuilder.Sql(File.ReadAllText(sqlFile));
    }

    /// <inheritdoc />
    protected override void Down(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.Sql("TRUNCATE TABLE book;");
    }
}

Released under the MIT License.