FOREIGN KEY-EinschränkungenForeign Key Constraints

Hinweis

Die Konfiguration in diesem Abschnitt ist im Allgemeinen gilt für relationale Datenbanken.The configuration in this section is applicable to relational databases in general. Die Erweiterungsmethoden, die hier gezeigten werden verfügbar, wenn Sie einen relationale Datenbank-Anbieter installieren (aufgrund der freigegebenen Microsoft.EntityFrameworkCore.Relational Paket).The extension methods shown here will become available when you install a relational database provider (due to the shared Microsoft.EntityFrameworkCore.Relational package).

Eine foreign Key-Einschränkung wird für jede Beziehung im Modell eingeführt.A foreign key constraint is introduced for each relationship in the model.

KonventionenConventions

Foreign Key-Einschränkungen werden gemäß der Konvention benannt FK_<dependent type name>_<principal type name>_<foreign key property name>.By convention, foreign key constraints are named FK_<dependent type name>_<principal type name>_<foreign key property name>. Für zusammengesetzte Fremdschlüssel <foreign key property name> wird eine Unterstrich getrennt Liste der Namen der foreign Key-Eigenschaft.For composite foreign keys <foreign key property name> becomes an underscore separated list of foreign key property names.

DatenanmerkungenData Annotations

Namen der foreign Key-Einschränkung können nicht mithilfe von datenanmerkungen konfiguriert werden.Foreign key constraint names cannot be configured using data annotations.

Fluent-APIFluent API

Sie können die Fluent-API verwenden, so konfigurieren Sie den Namen der foreign Key-Einschränkung für eine Beziehung.You can use the Fluent API to configure the foreign key constraint name for a relationship.

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

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Post>()
            .HasOne(p => p.Blog)
            .WithMany(b => b.Posts)
            .HasForeignKey(p => p.BlogId)
            .HasConstraintName("ForeignKey_Post_Blog");
    }
}

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

    public List<Post> Posts { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Title { get; set; }
    public string Content { get; set; }

    public int BlogId { get; set; }
    public Blog Blog { get; set; }
}