Introduction We all know EF Core Migrations . They have been around for quite some time, some people like them, others prefer alternatives (hello, Flyway , DbUp , FluentMigrator !). I'm not going to discuss that, but, instead, how to seed data to a database, either using EF Core migrations or not. This is, of course, for inserting initial/reference data that must always be present, for Microsoft's opinion on this, please see this page . This post assumes that you know about migrations - how to create and apply them, at least, and that you have all it takes for it, including EF Core Tools and the Microsoft.EntityFrameworkCore.Design NuGet package. Migrations and the creation methods ( EnsureCreated , EnsureCreatedAsync ) are mutually exclusive , so you need to pick one, depending on your strategy. For actually adding data, we have essentially four options: Explicit insertions Data-only migrations Entity configuration Context configuration (explicit seeding)...