Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# СLINQ液体可吸入量_C#_Linq_Iqueryable_Take - Fatal编程技术网

C# СLINQ液体可吸入量

C# СLINQ液体可吸入量,c#,linq,iqueryable,take,C#,Linq,Iqueryable,Take,我试图从大约7000个实体中只提取1000个实体。当Queryable转换为list时,返回的实体超过1000个 IQueryable<MyEntity> query = {some query}; query = query.Take(1000); var cnt = query.Count(); // 1000 var list = query.ToList(); // 1217 var listId = query.Select(x => x.Id).ToList()

我试图从大约7000个实体中只提取1000个实体。当Queryable转换为list时,返回的实体超过1000个

IQueryable<MyEntity> query = {some query};
query = query.Take(1000);
var cnt = query.Count();  // 1000
var list = query.ToList();  // 1217
var listId = query.Select(x => x.Id).ToList();  // 1000
怎么可能呢?
查询非常简单,就像_context.myenties.Where

当您将查询转换为哈希集而不是列表时,集合有多少项?如果它有超过“1000”个条目,那么它所花费的时间就超过了它应该花费的时间。如果它只需要1000个,那么它需要的是重复的。让我知道你的答案,一旦我有了你的答案,我会深入研究:-你是如何观察尺寸的?众所周知,Linq查询在调试器中查看时非常棘手,这是由于过滤迭代器、延迟执行等原因。list.Count给了您什么?您所说的毫无意义。ToList将永远不会丢失原始查询中的元素。@只有一个哈希集也有1217项。事实上,钥匙旁没有可疑的东西。也许值得一提的是,数据提供程序是DB View。@DStanley list.Count给出了相同的数字1217。当您将查询转换为哈希集而不是列表时,集合有多少项?如果它有超过“1000”个条目,那么它所花费的时间就超过了它应该花费的时间。如果它只需要1000个,那么它需要的是重复的。让我知道你的答案,一旦我有了你的答案,我会深入研究:-你是如何观察尺寸的?众所周知,Linq查询在调试器中查看时非常棘手,这是由于过滤迭代器、延迟执行等原因。list.Count给了您什么?您所说的毫无意义。ToList将永远不会丢失原始查询中的元素。@只有一个哈希集也有1217项。事实上,钥匙旁没有可疑的东西。也许值得一提的是,数据提供程序是DB View。@DStanley list.Count给出了相同的数字1217。