【发布时间】:2013-06-10 18:53:39
【问题描述】:
我知道有一种更有效的方法可以做到这一点,使用谓词,但是相当新,我不确定如何去做..
List<HousingAssignment> list;
using (OEContext context = new OEContext())
{
var query =
from ha in context.HousingAssignments
where ((ha.BedID == bed.ID) &&
(((ha.CheckIn <= checkin) && (ha.CheckOut >= checkin)) ||
((ha.CheckIn <= checkout) && (ha.CheckOut >= checkout))))
select ha;
list = query.ToList();
}
return list.Count;
【问题讨论】:
-
是什么让您认为
where表达式不是谓词? -
您的查询是一个带有 where 子句的简单选择语句,我非常怀疑编译器尚未完成任何可用的优化。
-
这怎么太慢了?你分析过它吗?
-
@Arran 当你说 profiled 时,你的意思是 Debug->Start Performance Analysis 吗?这就是我目前所做的/知道该怎么做。
-
@Thomas Farley:非常正确,只是想提醒大家不要像许多开发人员那样花太多时间担心性能问题。
标签: c# asp.net performance linq entity-framework