GetAysnc по идентификатору от многих ко многим Entity Framework - PullRequest
1 голос
/ 01 ноября 2019

У меня есть 2 таблицы Center (centerId, имя, адрес, ...) и Student (StudentId, NAme, Address), и я определил, что они имеют отношение многие ко многим. В результате я создал новую таблицу CenterStudent (centerId, studentId, ...), чтобы объединить эти 2 таблицы, и я установил оба значения centerId, studentId - PK и FK и каскадное удаление.

Теперь я хочу получить все записи с одинаковым идентификатором. Поэтому я написал

var lists = await studentCenterService.GetAsync(cancellationToken, studentId);

Но я получаю сообщение об ошибке

Тип сущности 'UserCenter' определен с помощью составного ключа из двух частей, но 1 значение было передано в 'DbSetМетод поиска.

Может ли кто-нибудь дать мне решение?

1 Ответ

0 голосов
/ 01 ноября 2019

Ошибка кажется довольно очевидной - метод .Find() в EF работает только на complete PK - так что если у вас PK состоит из двух столбцов (centerId, studentId), вы не можете использовать .Find(), чтобы найти все записи, если вы поставляете только studentId.

Вместо этого вам нужно использовать

UserCenter.Where(x => x.studentId == studentId)

.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...