Definieren einer Viele-zu-Viele-Beziehung im Code-First-Entity-Framework

Ich habe 3 Klassen in meinem Modell, wie Sie unten sehen können.

[Table("UserProfile")]
public class UserProfile
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string UserName { get; set; }

    public ICollection<MartialArtUserProfile> MartialArtUserProfiles { get; set; }
}

[Table("MartialArt")]
public class MartialArt
{
    [Key]
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    public string Name { get; set; }

    public string Description { get; set; }

    public string IconPath { get; set; }

    public string ImagePath { get; set; }

    public ICollection<MartialArtUserProfile> MartialArtUserProfiles { get; set; }
}

public class MartialArtUserProfile
{
    public int UserProfileId { get; set; }
    public UserProfile UserProfile { get; set; }

    public int MartialArtId { get; set; }
    public MartialArt MartialArt { get; set; }
}

Und ich habe eine Konfigurationsklasse für viele zu vielen Beziehungen wie folgt:

public class MartialArtUserProfileConfiguration : EntityTypeConfiguration<MartialArtUserProfile>
{
    public MartialArtUserProfileConfiguration()
    {
        HasKey(a => new { a.MartialArtId, a.UserProfileId });

        HasRequired(a => a.MartialArt)
            .WithMany(s => s.MartialArtUserProfiles)
            .HasForeignKey(a => a.MartialArtId)
            .WillCascadeOnDelete(false);

        HasRequired(a => a.UserProfile)
            .WithMany(p => p.MartialArtUserProfiles)
            .HasForeignKey(a => a.UserProfileId)
            .WillCascadeOnDelete(false);
    }
}

Nach dem Definieren meiner Entitäten eine Beziehung, wenn ich versuche, auszuführenDatenbank auf den neusten Stand bringen imPackage Manager-Konsole, es sagt:

Mindestens ein Validierungsfehler wurde bei der Modellgenerierung festgestellt:

\ tSystem.Data.Entity.Edm.EdmEntityType:: EntityType 'MartialArtUserProfile' hat keinen definierten Schlüssel. Definieren Sie den Schlüssel für diesen EntityType. \ tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'MartialArtUserProfiles' basiert auf dem Typ 'MartialArtUserProfile', für den keine Schlüssel definiert sind.

Was mache ich falsch?

Danke im Voraus,

Antworten auf die Frage(3)

Ihre Antwort auf die Frage