@TeVeTed

Почему не работает связь много-ко-многим?

Сделал 2 модели таблиц Colleges и Specialities, между которыми должна быть связь много-ко-многим (как бы и техникум обучает по нескольким специальностям, и какой-то специальности можно обучиться в нескольких техникумах)
Вот модели:
public class College
    {

        public int CollegeId { get; set; }

        public string Name { get; set; }

        public string Locality { get; set; }

        public int LocalityTypeId { get; set; }
        public virtual LocalityType LocalityType { get; set; }

        public int? UniversityId { get; set; }
        public virtual University University { get; set; }

        public int AreaId { get; set; }
        public virtual Area Area { get; set; }

        public string Address { get; set; }

        public string Phone { get; set; }

        public string Site { get; set; }

        public string Email { get; set; }

        public int? StatusId { get; set; }
        public virtual Status Status { get; set; }

        public int? AccrLevel { get; set; }

        public Director DirectorId { get; set; }

        public bool? Full { get; set; }

        public bool? Demo { get; set; }

        public List<Speciality> Specialities { get; set; }
    }


public class Speciality
    {

        public string DirectionCode { get; set; }

        public virtual Direction Direction { get; set; }

        [Key]
        public string SpecialityCode { get; set; }

        public string Name { get; set; }

        public List <College> Colleges { get; set; }
    }


И промежуточная модель, реализующая связь много-ко-многим:
public class CollegeSpeciality
    {

        public int CollegeSpecialityId { get; set; }

        public int CollegeId { get; set; }
        public virtual College College { get; set; }

        public string SpecialityCode { get; set; }
        public virtual Speciality Speciality { get; set; }

        public List<Speciality> Specialities { get; set; }

        public List<College> Colleges { get; set; }
    }

Я уверен, что напортачил в промежуточной модели, но может накосячил и в связующих
Помогите, кто знает)
  • Вопрос задан
  • 477 просмотров
Пригласить эксперта
Ответы на вопрос 1
andrewpianykh
@andrewpianykh
В Вашем случае явно создавать таблицу связей не нужно, она будет создана автоматически

public class College
    {
        public int? AccrLevel { get; set; }

        public string Address { get; set; }

        public virtual Area Area { get; set; }

        public int AreaId { get; set; }

        public bool? Demo { get; set; }

        public virtual Director Director { get; set; }

        public int DirectorId { get; set; }

        public string Email { get; set; }

        public bool? Full { get; set; }

        [Key]
        public int CollegeId { get; set; }

        public string Locality { get; set; }

        public virtual LocalityType LocalityType { get; set; }

        public int LocalityTypeId { get; set; }

        public string Name { get; set; }

        public string Phone { get; set; }

        public string Site { get; set; }

        public virtual ICollection<Speciality> Specialities { get; set; }

        public virtual Status Status { get; set; }

        public int? StatusId { get; set; }

        public virtual University University { get; set; }

        public int? UniversityId { get; set; }
    }

    public class Speciality
    {
        public virtual ICollection<College> Colleges { get; set; }

        [ForeignKey("DirectionCode")]
        public virtual Direction Direction { get; set; }

        public string DirectionCode { get; set; }

        public string Name { get; set; }

        [Key]
        public string SpecialityCode { get; set; }
    }


Подробнее: www.entityframeworktutorial.net/code-first/configu...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы