【发布时间】:2014-05-28 06:03:15
【问题描述】:
我正在使用 find() 执行此 MyMethod,与 FirstOrDefault() 相同。两种方法的响应时间不同。 Find 比 FirstOrDefault 慢。
public SelectList MyMethod(Guid UID) {
List<SelectListItem> selectItems = dbContext.AppMaps.Find(UID).AppMapTerms.AsEnumerable().Select(s => new SelectListItem() {
Text = s.TermName + " (" + s.StartPeriod.ToShortDateString() + " - " + s.EndPeriod.ToShortDateString() + ")",
Value = s.UID.ToString(),
Selected = UID == s.UID ? true : false
}
).ToList();
selectItems.Insert(0, new SelectListItem() {
Text = " --Select -- ",
Value = null,
Selected = false
});
SelectList selectList = new SelectList(selectItems, "Value", "Text");
return selectList;
}
使用 FirstOrdefault 方法
public SelectList MyMethod(Guid UID) {
AppRepository oAppRepository = new AppRepository();
List<SelectListItem> selectItems = oAppRepository.AllIncluding().FirstOrDefault(e => e.UID == UID).AppTerms.AsEnumerable().Select(s => new SelectListItem() {
Text = s.TermName + " (" + s.StartPeriod.ToShortDateString() + " - " + s.EndPeriod.ToShortDateString() + ")",
Value = s.UID.ToString(),
Selected = UID == s.UID ? true : false
}
).ToList();
selectItems.Insert(0, new SelectListItem() {
Text = " --Select -- ",
Value = null,
Selected = false
});
SelectList selectList = new SelectList(selectItems, "Value", "Text");
return selectList;
}
请解释一下。谢谢
【问题讨论】:
-
问题已在 [此处][1] 得到解答。 [1]:stackoverflow.com/questions/14032709/…
-
它没有得到确切的回答,因为在这种情况下,Find() 方法似乎比 FirstOrDefault 调用慢,而 FirstOrDefault 调用应该更慢。
标签: asp.net-mvc-4 ef-code-first