0

当我执行以下操作时怎么会:

var query = from a in OBJ where a.ID == ID select c;

它做到了 <1 秒,但是一旦我添加了 IQueryable 函数,它会增加到大约 3 秒吗?

var query = (from a in OBJ where a.ID == ID select c).SingleOrDefault();

当我使用 FirstOrDefault() 时也会发生同样的情况。

4

1 回答 1

10

这:

var query = from a in OBJ where a.ID == ID select c;

...仅代表查询。它根本不执行它。它应该非常——不仅仅是“不到一秒钟”,而是“几乎无法估量”。

这:

var query = (from a in OBJ where a.ID == ID select c).SingleOrDefault();

...获取实际数据,这意味着它必须执行查询。

通常,LINQ 尽可能使用延迟执行。这只是一个例子。搜索 LINQ 延迟执行,您将获得大量文章供您阅读。潜入最适合您阅读风格的那个:)

于 2012-06-29T19:39:05.830 回答