【发布时间】:2013-04-09 01:57:42
【问题描述】:
我正在重构一个 MVC 3 Web 应用程序,使其不直接将数据模型传递给控制器,而是使用视图模型(参见灵感here)。
目前,在填充模型列表时,我们在控制器中按照以下方式执行操作:
var myQuery = from t in _db.TimeEntries
select t;
List<TimeEntry> timeEntryList = myQuery.ToList<TimeEntry>();
TimeEntries 绑定到我们的数据库。
但是,现在我有一个视图模型:
public class TimeEntryViewModel
{
public TimeEntry entry {get; set;}
public Time time { get; private set; }
public TimeEntryViewModel();
public TimeEntryViewModel(int ID)
{
PraxisTime.Models.PraxisTimeDB _db = new PraxisTime.Models.PraxisTimeDB();
entry = _db.TimeEntries.Find(ID);
time = _db.Times.Find(entry.TimeID);
}
}
这一切都很好,直到我想填充这些列表。这是我的解决方案,已添加到视图模型中,但感觉很笨拙。
public static List<TimeEntryViewModel> LoadTimeEntryViewModels(string userID)
{
theDB _db = new theDB();
List<int> myQuery = (from t in _db.TimeEntries
select t.ID).ToList<int>();
List<TimeEntryViewModel> timeEntryList = new List<TimeEntryViewModel>();
foreach (int i in myQuery)
{
timeEntryList.Add(new TimeEntryViewModel(i));
}
return timeEntryList;
}
我错过了更好的方法吗?
【问题讨论】:
标签: asp.net-mvc-3 linq entity-framework