CodeFirst EF4.1 MVC Против устаревшей базы данных - конфликты множественности

Независимо от того, каким образом я их смешиваю, это дает мне ошибки. У меня такое чувство, что я упускаю что-то очевидное, поскольку продолжаю получать эти ошибки.

Одна или несколько ошибок проверки были обнаружены во время создания модели:

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

}
53
задан Artiom 8 September 2015 в 03:53
поделиться