C # Core 2.1 EF запрос отношения многие ко многим - PullRequest
0 голосов
/ 14 марта 2019

У меня проблема с таблицами соединения «многие ко многим» в C # Core EF.Я конвертирую код .NET Framework в .NET Core 2.1, и это немного сложнее, поскольку эти таблицы соединений должны быть определены вручную в dbcontext с сопровождающим классом модели, а не обрабатываться в фоновом режиме, как раньше.

Я не могу понять, как сделать запрос.Стремительная загрузка.

Например, раньше я просто включал связанные данные, используя

db.Student.Include(x => x.Course).Where(...

Теперь это больше не работает, так как я могу загружать только данные объединенной таблицы

db.Student.Include(x => x.CourseStudent).Where(...

Если я сделаю

db.Student.Include(x => x.CourseStudent).ThenInclude(y => y.Course).Where(...

, я получу сообщение об ошибке:

The Include property lambda expression 'x => {from CourseStudent y in x.Course select [y].Course}' is invalid. The expression should represent a property access: 't => t.MyProperty'. To target navigations declared on derived types, specify an explicitly typed lambda parameter of the target type, E.g. '(Derived d) => d.MyProperty'. For more information on including related data, see http://go.microsoft.com/fwlink/?LinkID=746393.

Я прочитал эту страницу и ничего полезного там не могу.Он говорит .ThenInclude () должен работать, но это не так.

Студент является производным от Person, но все важные для него члены находятся в Student.Курс - это просто курс.

Что-то не так, и я не знаю, что ....

1 Ответ

0 голосов
/ 16 марта 2019

При разработке небольшого примера проекта я наткнулся на решение.Это была ошибка IntelliSense, которая обманула меня, хотя я и читал об этом .... Так что проблема решена.

https://docs.microsoft.com/en-us/ef/core/querying/related-data#including-multiple-levels

...