我遇到了一个奇怪的问题“.First()” - 一个IQueryable:
var tests = dbSet
.Where(p => productIds.Contains(p.ProductID.ToString()) || p.ProductGroups.Any(pg => pg.GroupedID == groupedId))
.Select(p => p.Tests.Where(t => t.StatusID == 1 && t.TestType == 1));
var testList = tests.ToList();
var testFirst = tests.FirstOrDefault();
.ToList()在不到一秒的时间内正常运行,但是.First()似乎非常慢,最终会超时。我可以通过执行测试来解决这个问题.ToList()。FirstOrDefault()但我认为会慢一些吗?
另外,如果我将初始查询更改为更简单的内容:
var tests = dbSet
.Where(p => productIds.Contains(p.ProductID.ToString()))
.Select(p => p.Tests.Where(t => t.StatusID == 1 && t.TestType == 1));
.First()工作正常吗?所以这与额外的或者那个.Where()结合.First()。
如果有人能解释这里发生的事情会很棒!