Как ограничить просмотр таблицы на странице индекса на основе зарегистрированного пользователя с несколькими зависимостями? - PullRequest
0 голосов
/ 21 июня 2020

Следующий код находится в уже созданном классе индекса в контроллере проектов

 public ActionResult Index()
    {
        var x = User.Identity.GetUserName();
        var projects = db.projects.Include(p => p.area1).Include(p => p.Currency1).Include(p => p.priority1).Include(p => p.program).Include(p => p.projectCategory).Include(p => p.statuss).Include(p => p.statuss1);
        return View(projects.ToList());
    }

, поэтому я хотел бы показать только несколько полей из таблицы проектов в представлении индекса на основе зарегистрированного пользователя>.

у нас есть 3 связанных таблицы (проекты, заинтересованные стороны и пользователи)

проекты связаны с заинтересованными сторонами, а заинтересованные стороны связаны с пользователями, в которых зарегистрированный пользователь ссылается на него

У проекта 1 много заинтересованных сторон (заинтересованная сторона 1, заинтересованная сторона 2 и заинтересованная сторона 3)

Заинтересованная сторона 3 - это пользователь x в таблице пользователей с зарегистрированным адресом электронной почты x@x.x

Как я могу go через все эти зависимости проверить зарегистрированного пользователя по его / ее электронной почте, чтобы показать в индексе единственные проекты, в которых этот пользователь участвует?

1 Ответ

0 голосов
/ 21 июня 2020

Вы должны использовать запрос проекции, вот простой пример ниже.

var test = db.projects.Where(s => s.FirstName == "Bill")
                        .Select(s => new
                        {
                            Student = s,
                            Grade = s.Grade,
                            GradeTeachers = s.Grade.Teachers
                        })
                        .FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...