MVC3 ViewModel с несколькими запросами LINQ, это делает несколько вызовов БД? - PullRequest
0 голосов
/ 11 января 2012

Если я создаю модель представления для передачи в представление, и моя модель представления состоит из нескольких свойств одного и того же объекта, как мне создать запрос LINQ?На данный момент я делаю это так:

TaskEditViewModel viewModel = new TaskEditViewModel
 {
      Task = taskRepository.Tasks.FirstOrDefault(t => t.Id == id),
      Status = (taskRepository.Tasks.FirstOrDefault(t => t.Id == id).CompletionDate.ToString() == "") ? "close" : "open",
      Account = taskRepository.Tasks.FirstOrDefault(t => t.Id == id).Accounts.First()
 };
 return View(viewModel);

Мой taskRepository возвращает IQueryable, значит ли это, что я делаю 3 отдельных вызова БД?Должен ли я сделать один вызов и затем построить модель представления из результатов?

1 Ответ

0 голосов
/ 10 января 2013

Я решил вернуться к этому в его годовщину.Я думаю, что из-за отложенной загрузки совершал бы несколько вызовов в дБ, поэтому не очень эффективно.

Как правильно прокомментировал Ingo Vals, свойства CompletionDate и Account включены вмоя модель задач, поэтому я должен был просто сделать что-то вроде этого:

Task viewModel = taskRepository.Tasks.FirstOrDefault(t => t.Id == id)

return View(viewModel);

Тогда, на мой взгляд, я могу получить свойства CompletionDate и Account из модели представления

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