Присоединиться к консультациям, используя «Веб-контроллер 2 с действиями, используя Entity Framework»

#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.