gpt4 book ai didi

c# - 如何加快此 LINQ 查询的速度?

转载 作者:太空宇宙 更新时间:2023-11-03 17:53:52 24 4
gpt4 key购买 nike

我知道有一种更有效的方法可以做到这一点,使用谓词,但是相当新,我不确定如何去做。

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;

最佳答案

由于您只是返回计数,您可以在查询中使用 Count 计算它方法:

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;

return query.Count();
}

这消除了从本地数据库中提取值,存储到列表中,然后“丢弃”结果。相反,计数将在服务器上计算,您只会拉出一个数字。

您还可以通过对 CheckIn 的正确索引来潜在地加速服务器上的查询。和 CheckOut列。

关于c# - 如何加快此 LINQ 查询的速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17030796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com