Независимо от того, каким образом я его смешиваю, это дает мне ошибки. У меня такое чувство, что я пропускаю что-то очевидное, поскольку я продолжаю получать эти ошибки.
Во время генерации модели были обнаружены одна или несколько ошибок проверки:
System.Data.Edm.EdmAssociationType:: Многократность конфликтует с реляционным ограничением в роли "Venue_Courses_Source" в отношении "Venue_Courses". Поскольку все свойства зависимой роли не имеют значения NULL, множественность главной роли должна быть "1".
System.Data.Edm.EdmAssociationEnd:: множественность недействительна в роли "Venue_Courses_Target" в отношении "Venue_Courses". Поскольку зависимая роль относится к ключевым свойствам, верхняя граница множественности зависимой роли должна быть равна 1.
Курс может состоять только из одного места, места могут использоваться многими курсами
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<Course> Courses { get; set; }
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
#region Courses
//Table Alias
modelBuilder.Entity<Course>().ToTable("DBSCHEMA.TR_COURSES");
//Keys
modelBuilder.Entity<Course>().HasKey(c => c.Id);
//Joins
//Join to Venues
modelBuilder.Entity<Course>().HasOptional(c => c.Venue);
//Fields
modelBuilder.Entity<Course>().Property(c => c.Id).HasColumnName("COURSE_ID");
modelBuilder.Entity<Course>().Property(c => c.Title).HasColumnName("CR_TITLE");
modelBuilder.Entity<Course>().Property(c => c.StartDate).HasColumnName("START_DATE");
modelBuilder.Entity<Course>().Property(c => c.VenueId).HasColumnName("VENUE_ID");
#endregion
#region Venues
//Table Alias
modelBuilder.Entity<Venue>().ToTable("DBSCHEMA.VENUES");
//Keys
modelBuilder.Entity<Venue>().HasKey(v => v.Id);
//Joins
modelBuilder.Entity<Venue>().HasMany(venue => venue.Courses);
//Fields
modelBuilder.Entity<Venue>().Property(v => v.Id).HasColumnName("VENUE_ID");
modelBuilder.Entity<Venue>().Property(v => v.Name).HasColumnName("VENUE_NAME");
#endregion
}