#c# #asp.net #entity-framework
#c# #asp.net #entity-framework
Вопрос:
Я пытаюсь создать консультацию, используя фреймворк, который я создал ранее.
Я видел, что действительно легко выполнять базовые консультации, но я не могу этого сделать.
У меня есть таблица с именем «Выпускник», и у меня есть другая, называемая «Историко». Каждый выпускник состоит в «Группе», я хочу получить все исторические данные, используя «Группу» в качестве ссылки.
У меня есть внешний ключ с именем «Grupo», мне нужно использовать «Grupo», чтобы получить «Историю» некоторых «выпускников».
Но я не знаю, как к нему присоединиться.
Вот диаграмма ER
Спасибо, отличный день.
Комментарии:
1. Хорошо, ангел, нам нужна дополнительная информация здесь, в вашем вопросе отсутствуют классы «Practica» и «Grupo». Также очень важно, чтобы мы видели ваш класс DbContext . Я также рекомендую вам в качестве хорошей практики всякий раз, когда вы используете ForeingKey, убедитесь, что свойство называется Id<YOURCLASS>, например: IdAlumno или AlumnoId оба верны, но код легче читать, когда вы поддерживаете определенный порядок.
2. Привет. Я добавил диаграмму. Я был бы очень признателен, если бы вы могли мне помочь. Спасибо
Ответ №1:
Вы могли бы использовать LINQ, предполагая, что у вас есть grupoId, из которого вы хотите получить исторические данные
var historicos = from grupo in db.Group
join alumno in db.Alumno
on grupo.IdGrupo equals alumno.IdGrupo
join practica in db.Alumno_Practica
on alumno.IdAlumno equals practica.IdAlumno
join historico in db.Historico
on practica.IdPractica equals historico.IdPractica
where grupo.IdGrupo == @yourIdGrupo
select historico
Это всего лишь руководство, замените @ values нужными вам данными и выполните их в своем коде.
Комментарии:
1. Здравствуйте, я получаю некоторую ошибку с вашим ответом. Ошибки в alumno, grupo, practica, но я не знаю, как их исправить. Я думаю, что ваш ответ правильный, но он работает неправильно
2. Какую ошибку вы получаете? Скопируйте его сюда, я сам не тестировал код, как я уже упоминал, это просто руководство, поэтому его можно выполнить только на вашей стороне. Если вы скопируете ошибку здесь, я могу понять, что не так
3. в левой части «равно» написано, что «выпускник» не входит в область видимости. Рассмотрите возможность замены выражений по обе стороны от «равно»
4. Я опубликую ссылку с изображением.
5. кажется, это нужно поменять местами, вместо «выпускник. IdGrupo равно grupo. IdGrupo» должен быть «grupo. IdGrupo равно выпускнику. IdGrupo» поскольку 1-й компонент запроса является Grupo.