Klucze (podstawowy)Keys (primary)

Klucz służy jako podstawowy identyfikator unikatowy dla każdego wystąpienia jednostki.A key serves as the primary unique identifier for each entity instance. Korzystając z relacyjnej bazy danych to mapy do koncepcji klucz podstawowy.When using a relational database this maps to the concept of a primary key. Można również skonfigurować unikatowy identyfikator, który nie jest kluczem podstawowym (zobacz klucze alternatywne Aby uzyskać więcej informacji).You can also configure a unique identifier that is not the primary key (see Alternate Keys for more information).

KonwencjeConventions

Konwencja, właściwość o nazwie Id lub <type name>Id zostaną skonfigurowane jako klucza jednostki.By convention, a property named Id or <type name>Id will be configured as the key of an entity.

class Car
{
    public string Id { get; set; }

    public string Make { get; set; }
    public string Model { get; set; }
}
class Car
{
    public string CarId { get; set; }

    public string Make { get; set; }
    public string Model { get; set; }
}

Adnotacji danychData Annotations

Aby skonfigurować jedną właściwość klucza jednostki za, można użyć adnotacji danych.You can use Data Annotations to configure a single property to be the key of an entity.

class Car
{
    [Key]
    public string LicensePlate { get; set; }

    public string Make { get; set; }
    public string Model { get; set; }
}

Interfejsu API FluentFluent API

Aby skonfigurować jedną właściwość klucza jednostki za, można użyć interfejsu API Fluent.You can use the Fluent API to configure a single property to be the key of an entity.

class MyContext : DbContext
{
    public DbSet<Car> Cars { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Car>()
            .HasKey(c => c.LicensePlate);
    }
}

class Car
{
    public string LicensePlate { get; set; }

    public string Make { get; set; }
    public string Model { get; set; }
}

Aby skonfigurować wiele właściwości klucza obiektu (znany jako klucz złożony) umożliwia także interfejsu API Fluent.You can also use the Fluent API to configure multiple properties to be the key of an entity (known as a composite key). Klucze złożone można skonfigurować tylko za pomocą interfejsu API Fluent — konwencje nigdy nie będzie Instalatora klucz złożony i nie umożliwia adnotacji danych konfiguracji.Composite keys can only be configured using the Fluent API - conventions will never setup a composite key and you can not use Data Annotations to configure one.

class MyContext : DbContext
{
    public DbSet<Car> Cars { get; set; }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Car>()
            .HasKey(c => new { c.State, c.LicensePlate });
    }
}

class Car
{
    public string State { get; set; }
    public string LicensePlate { get; set; }

    public string Make { get; set; }
    public string Model { get; set; }
}