Schlüssel (primär)Keys (primary)

Ein Schlüssel dient als der primäre eindeutige Bezeichner für jede Entitätsinstanz.A key serves as the primary unique identifier for each entity instance. Bei Verwendung eine relationale Datenbank entspricht dem das Konzept einer Primärschlüssel.When using a relational database this maps to the concept of a primary key. Sie können auch einen eindeutigen Bezeichner, der nicht den Primärschlüssel konfigurieren (finden Sie unter Alternativschlüssel für Weitere Informationen).You can also configure a unique identifier that is not the primary key (see Alternate Keys for more information).

KonventionenConventions

Gemäß der Konvention, eine Eigenschaft mit dem Namen Id oder <type name>Id wird als Schlüssel für eine Entität konfiguriert werden.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; }
}

DatenanmerkungenData Annotations

Sie können Datenanmerkungen verwenden, so konfigurieren Sie eine einzelne Eigenschaft, um die Schlüssel einer Entität sein.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; }
}

Fluent-APIFluent API

Sie können die Fluent-API verwenden, so konfigurieren Sie eine einzelne Eigenschaft, um die Schlüssel einer Entität sein.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; }
}

Die Fluent-API können auch um mehrere Eigenschaften für den Schlüssel einer Entität (als einen zusammengesetzten Schlüssel bezeichnet) werden zu konfigurieren.You can also use the Fluent API to configure multiple properties to be the key of an entity (known as a composite key). Zusammengesetzte Schlüssel können nur konfiguriert werden mithilfe der Fluent-API - Konventionen richtet einen zusammengesetzten Schlüssel nie und Datenanmerkungen Konfiguration kann nicht verwendet.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; }
}