MVC - Entity Framework, подключение связанных данных к новому объекту - PullRequest
0 голосов
/ 03 декабря 2018

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

Я также хотел бы, чтобы пользователь мог просматривать приложения в этом временном параметре.Однако, поскольку этот объект не был сохранен, то из базы данных не было извлечено ни одного из связанных объектов.

очень базовая (набранная вручную) структура для иллюстрации.

List<AppModel> applications = new List<AppModel>();
public ActionResult CreateTempApplication (AppModel applicaton)
{
    applications.add(application);
    TempData["Applications"] = applications;
    return View();
}
public ActionResult ViewTempApp (int index)
{
    List<AppModel> applications = TempData["Applications"];
    return View("View",applications[index]);
}

Теперь в приложении есть несколько раскрывающихся списков, которые пользователь выбрал и сохранил как int для FK.

Когда пользователь выбирает один для предварительного просмотра (перед сохранением в БД), я хочу, чтобы связанные объекты обновлялись, чтобы пользователь мог видеть их выбор, а не целые числа.

Решения, которые я знаювыключено, но не нравится ...

  1. Где-то в методе ViewTempApp загружать каждый связанный объект один за другим с обращениями к БД, т.е.

    application.relatedObj = db.related.SingleOrDefault (x => x.id == application.related)

Мне не нравится это из-за индивидуального вызова для каждого связанного объекта (боль, если у вас много) и техническое обслуживание (новые поля и т. д.).

Сохранение во временную таблицу в БД с теми же отношениями, затем извлечение и удаление из временной таблицы.

Это, по сути, позволяет добиться того, что я ищу, путем повторного подключения всех связанных объектов, однако я в идеалехотел бы это без накладных расходов на запись и чтение из базы данных.

Так что я думаю, что я ищу это приложение. Refef () бла бла ....

этовозможный?или я смирился с одним из вышеперечисленных вариантов?

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