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 migrationdotnet ef database update
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;");
}
}