Un-à-Plusieurs relation de mappage renvoie des erreurs de validation

Édité avec la nouvelle situation par suggestion dans les commentaires:

Actuellement, j'ai cette cartographie

public ShowMap() {
        ToTable("Shows");
        HasKey(x => x.ShowID);

        Property(x => x.ShowID)
            .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
            .IsRequired()
            .HasColumnName("ShowID");
}

public EpisodeMap() {
        ToTable("Episodes");
        HasKey(x => x.EpisodeID);

        Property(x => x.EpisodeID)
        .IsRequired()
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
        .HasColumnName("EpisodeID");

        Property(x => x.ShowID)
            .IsRequired()
            .HasColumnName("ShowID");

        Property(x => x.EpisodeNumber)
            .IsRequired()
            .HasColumnName("EpisodeNumber");
}

Cette résultats dans la base de données suivante:

Un-à-Plusieurs relation de mappage renvoie des erreurs de validation

Un-à-Plusieurs relation de mappage renvoie des erreurs de validation

Toutefois, lorsque la graine méthode est exécutée je reçois cette erreur. Puisque je ne peux pas déboguer la valeur des variables à partir de la ligne de commande Update-Database (au moins, pas autant que je sache) je ne vois pas ce que la propriété détient.

La Validation a échoué pour une ou plusieurs entités. Voir " EntityValidationErrors la propriété pour plus de détails.

Quand j'ajoute le lien vers la cartographie, je reçois l'erreur suivante:

Une ou plusieurs erreurs de validation ont été détectés au cours de la génération de modèle:

Système.Les données.De l'entité.Edm.EdmAssociationEnd: : la Multiplicité n'est pas valide dans le Rôle "Episode_Show_Source" en relation "Episode_Show'. Parce que le Rôle Dépendants fait référence à la clé des propriétés, la limite supérieure de la multiplicité des personnes Dépendantes Rôle doit être à '1'.

Relation:

        HasRequired(x => x.Show)
            .WithMany(x => x.Episodes)
            .HasForeignKey(x => x.EpisodeID);

C'est le modèle:

public class Episode {
  public int EpisodeID {get; set;}
  public int ShowID {get; set;}
  public int EpisodeNumber {get; set;}
  public virtual Show Show { get; set; }
}

public class Show {
  public int ShowID {get; set;}
  public virtual ICollection<Episode> Episodes { get; set; }
}

Ce que j'ai négligé qui provoque les erreurs de validation?

Edit: juste pour être certain, je n'ai rien oublié, cette est le projet sur github.

Pourquoi le besoin d'avoir un compmosite clé? nouveau { x.ParentID "x".ChildID }) Est l'unicité n'est établie que par ce tableau ayant à la fois des touches?
Le caractère unique d'un enregistrement dans la table Enfant est déterminé par le ParentID et un ChildID. Le monde réel d'utilisation applicable ici est un Spectacle et de ses épisodes: Un spectacle a plusieurs épisodes, mais chaque épisode n'appartient qu'à un seul spectacle. Pourriez-vous proposer une approche différente?
Essentiellement, il semble que vous dites EF carte ChildId deux fois, comme une clé composite et FK. Supprimer la ChildId et Parent de l'id de l'POCO. EF peut comprendre cela. Et si possible de déclarer une seule et unique PK de l'Enfant (entité de semences) pour ne pas avoir à utiliser un composite.
J'ai refait mon programme, mais l'erreur persiste. J'ai mis à jour le post pour refléter les modifications.
Est-ce vraiment exactement votre modèle et de la cartographie? C'est une norme un-à-plusieurs relation que tout le monde a utilisé des centaines de fois sans problèmes. L'exception n'a aucun sens.

OriginalL'auteur Jeroen Vannevel | 2013-06-12