我有这个查询可以提供正确的结果,但运行大约需要 15 秒
int Count= P.Pets.Where(c => !P.Pets.Where(a => a.IsOwned == true)
.Select(a => a.OwnerName).Contains(c.OwnerName) && c.CreatedDate >=
EntityFunctions.AddDays(DateTime.Now, -8)).GroupBy(b=>b.OwnerName).Count();
如果我删除这部分 linq
'&& c.CreatedDate >= EntityFunctions.AddHours(DateTime.Now, -8)'
运行只需大约 3 秒。我怎样才能保持相同的情况发生但要快得多?我需要该日期标准,因为我不希望将任何 8 天前创建的 Classeses 包含在计数中
编辑
我有一个名为 People 的表,在此查询中称为 P 并且我想返回没有所有者的 Pets 总数,并从查询中删除没有所有者的 Pets有一个所有者,即使它们存在于另一个 Pet 引用中也没有该 Pet 的所有者。这意味着如果一个人在 Pets 表中至少有一条记录被视为宠物的所有者,那么我想删除该人存在于返回查询中的所有情况,一旦完成,只返回已创建的 Pets超过 8 天