In ASP.NET Core using a Entity Framework Core we only have the option to connect with a database by aproach code first. Edmx and Dbml will not be supported anymore.
So what to do if we have existing database and we want to create a model based on EF Core in application.
I’ll show you in a short tutorial how to get it with the easiest way.
Example
At the first we need to create class which is a reflection of the property in the database table.

public class SomeTable
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
}
Then we need to create a class that will inherit from DbContext from the namespace EntityFrameworkCore and it will contain the properties of our table / tables.
public class SomeContext : DbContext
{
public DbSet<SomeTable> SomeTable{ get; set; }
public SomeContext(DbContextOptions<SomeContext> options) : base(options)
{
}
}
Configure a connection to the database with a default connection string from appsettings.json in the startup class.
services.AddDbContext<SomeContext>(x =>
x.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
"ConnectionStrings": {
"DefaultConnection": "server=.\\SQLEXPRESS;Database=ExampleDb;Trusted_Connection=True;"
}
Add migrations by use command Add-Migrations.
The following class was generated by migrations
public partial class firstmigration : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "SomeTable",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn),
Name = table.Column<string>(nullable: true),
Surname = table.Column<string>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_SomeTable", x => x.Id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "SomeTable");
}
}
We have to delete everything that is in the function “Up”. And use command Update-Database. After these operations, we have a generated migration and finally, we can “normally” use the code first approach without any conflicts.

Link to the project.
