.ToList()工作正常时,第一个()超时

时间:2016-01-27 11:24:38

标签: c# entity-framework linq-to-entities

我遇到了一个奇怪的问题“.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()。

如果有人能解释这里发生的事情会很棒!

0 个答案:

没有答案