如果我创建一个viewmodel来传递给一个视图,我的viewmodel由几个组成 来自同一对象的属性,我应该如何创建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个单独的数据库调用?我应该进行一次调用,然后从结果中构建viewmodel吗?
答案 0 :(得分:0)
我决定在其周年纪念日重温这一点。我认为会由于延迟加载而进行多次db调用,因此效率不高。
正如Ingo Vals正确评论的那样,CompletionDate
和Account
属性包含在我的任务模型中,所以我应该做的就是这样:
Task viewModel = taskRepository.Tasks.FirstOrDefault(t => t.Id == id)
return View(viewModel);
然后在我看来,我可以从视图模型中获取CompletionDate
和Account
属性