Peu importe la façon dont je le mélange, cela me donne des erreurs. J'ai l'impression de manquer quelque chose d'évident car je continue à recevoir ces erreurs.
Un ou plusieurs erreurs de validation ont été détectées lors de la génération du modèle :
System.Data.Edm.EdmAssociationType: : La multiplicité entre en conflit avec la contrainte référentielle du rôle 'Venue_Courses_Source' dans la relation 'Venue_Courses'. Comme toutes les propriétés dans le rôle dépendant sont non-nullable, la multiplicité du rôle principal doit être '1'.
System.Data.Edm.EdmAssociationEnd: : La multiplicité n'est pas valide pour le rôle 'Venue_Courses_Target' dans la relation 'Venue_Courses'. Comme le rôle dépendant fait référence aux propriétés clés, la limite supérieure de la multiplicité du rôle dépendant doit être 1.
Un cours ne peut avoir qu'un seul lieu, les lieux peuvent être utilisés par de nombreux cours
public class Course
{
[Key]
public virtual int Id { get; set; }
public string Title { get; set; }
public DateTime StartDate { get; set; }
public int VenueId { get; set; }
public virtual Venue Venue { get; set; }
}
public class Venue
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection Courses { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region Courses
//Alias de table
modelBuilder.Entity().ToTable("DBSCHEMA.TR_COURSES");
//Clés
modelBuilder.Entity().HasKey(c => c.Id);
//Joins
//Jointure avec les lieux
modelBuilder.Entity().HasOptional(c => c.Venue);
//Champs
modelBuilder.Entity().Property(c => c.Id).HasColumnName("COURSE_ID");
modelBuilder.Entity().Property(c => c.Title).HasColumnName("CR_TITLE");
modelBuilder.Entity().Property(c => c.StartDate).HasColumnName("START_DATE");
modelBuilder.Entity().Property(c => c.VenueId).HasColumnName("VENUE_ID");
#endregion
#region Venues
//Alias de table
modelBuilder.Entity().ToTable("DBSCHEMA.VENUES");
//Clés
modelBuilder.Entity().HasKey(v => v.Id);
//Joins
modelBuilder.Entity().HasMany(venue => venue.Courses);
//Champs
modelBuilder.Entity().Property(v => v.Id).HasColumnName("VENUE_ID");
modelBuilder.Entity().Property(v => v.Name).HasColumnName("VENUE_NAME");
#endregion
}