当我执行以下操作时怎么会:
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() 时也会发生同样的情况。
当我执行以下操作时怎么会:
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() 时也会发生同样的情况。
这:
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 延迟执行,您将获得大量文章供您阅读。潜入最适合您阅读风格的那个:)