Primary Keys


This documentation is for EF Core. For EF6.x, see Entity Framework 6.


The configuration in this section is applicable to relational databases in general. The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

A primary key constraint is introduced for the key of each entity type.


By convention, the primary key in the database will be named PK_<type name>.

Data Annotations

No relational database specific aspects of a primary key can be configured using Data Annotations.

Fluent API

You can use the Fluent API to configure the name of the primary key constraint in the database.

class MyContext : DbContext
    public DbSet<Blog> Blogs { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
            .HasKey(b => b.BlogId)

public class Blog
    public int BlogId { get; set; }
    public string Url { get; set; }