Все сервисы Хабра
Сообщество IT-специалистов
Ответы на любые вопросы об IT
Профессиональное развитие в IT
Закрыть
Задать вопрос
Sanostee
53
вклад
1
вопрос
64
ответа
52%
решений
Комментарии
Информация
Ответы
Вопросы
Комментарии
Подписки
Нравится
Достижения
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Да, Вы правы, я выше слегка напутал... Поправил классы модели, надеюсь ничего не пропустил.
https://onedrive.live.com/redir?resid=DB3E6982525C...
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
У Вас ошибки в модели данных, так что не удивительно. Сейчас отредактирую и скину все файлы с классами модели.
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
У Director вместо:
[ForeignKey("CollegeId")]
public int DirectorId { get; set; }
public College CollegeId { get; set; }
должно быть так:
public int CollegeId { get; set; }
[ForeignKey("CollegeId")]
public virtual College College { get; set; }
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
У Direction вот так:
public string BranchCode { get; set; }
[ForeignKey("BranchCode")]
public virtual Branch Branch { get; set; }
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
неее, вот так)
public virtual Director Director { get; set; }
public int DirectorId { get; set; }
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
У сущности College должно быть так:
public virtual Director Director { get; set; }
public Director DirectorId { get; set; }
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
+ у Вас ошибки в атрибутах модели
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Нет у меня Sql Server local к сожалению, не удалось запустить.
Попробуйте исправить эту строку, добавив проверку college.Specialities !=null
PagingInfo = new PagingInfo
{
.....
.Where(college => college.Specialities !=null && college.Specialities.Any(s => s.Name == speciality))
.....
},
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Сейчас гляну
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
В крайнем случае если есть желание и TeamViewer, могу зайти вместе посмотрим.
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Сложно заочно диагностировать причину. Посмотрите внимательно, запустите проект в режиме отладки...
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Попробуйте переписать так:
.Where(p => speciality == null || (p.Specialities != null && p.Specialities.Any(s => s.Name == speciality)))
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Полное сообщение об ошибке напишите
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
В запросе проверяете c.Specialities != null
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Вместо SpecialityCode используйте, что требуется (Name?), в зависимости от того, что ожидается в переменной speciality.
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Если в конструкторе College инициализация коллекции Specialities не выполняется, тогда стоит проверить, что ссылка на коллекцию не равна null:
.Where(c => c.Specialities != null && c.Specialities.Any(s => s.SpecialityCode == speciality))
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Тогда
.Where(c => c.Specialities.Any(s => s.SpecialityCode == speciality))
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Можно заменить
specialities.Count(a => a.SpecialityCode == s.SpecialityCode) >0
на
specialities.Any(a => a.SpecialityCode == s.SpecialityCode)
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Данный запрос выберет только те техникумы, которые содержат хотя бы одну специальность из локальной коллекции specialities. Сравнение выполняется по свойству SpecialityCode класса Speciality.
Написано
более трёх лет назад
Почему не работает связь много-ко-многим?
Sanostee
@andrewpianykh
Не очень понял) Помимо свойства Specialities у сущности College у Вас есть еще локальная коллекция specialities? Тогда, что-то вроде этого:
.Where(c => c.Specialities.Any(s => specialities.Count(a => a.SpecialityCode == s.SpecialityCode) >0))
Написано
более трёх лет назад
← Предыдущие
1
2
3
4
Следующие →
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации
Закрыть
Реклама