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_Datagridview_Execution Time - Fatal编程技术网

C# LINQ命令花费了相当长的时间

C# LINQ命令花费了相当长的时间,c#,linq,datagridview,execution-time,C#,Linq,Datagridview,Execution Time,我尝试使用一些基本的select语句从数据库中检索数据。然后我想在datagridview上显示这些数据 我遇到的问题是,LINQ命令的执行花费了相当长的时间5-10秒,结果有1000行。我试着在这个网站上寻找答案,但这些问题比我的问题更难回答 我的代码如下: using (var db = new Model1()) { var query = from a in db.Animals select a; dgvAnimals.DataS

我尝试使用一些基本的select语句从数据库中检索数据。然后我想在datagridview上显示这些数据

我遇到的问题是,LINQ命令的执行花费了相当长的时间5-10秒,结果有1000行。我试着在这个网站上寻找答案,但这些问题比我的问题更难回答

我的代码如下:

using (var db = new Model1())
{
     var query = from a in db.Animals
                 select a;

     dgvAnimals.DataSource = query.ToList();
}

任何人都可以告诉我为什么需要这么长时间?

尝试使用linq take语句来减小集合的大小

using (var db = new Model1())
{
 var query = db.Animals.Take(20);
}

若这并没有提高性能,那个么试着模拟一些数据或将空集传递给UI,然后看看会发生什么。如果将数据库从等式中剔除并不能提高性能,那么一定是其他组件落后了。

动物实体大且有很多字段吗?您是通过网络还是本地查询数据库?您使用的是什么版本的Entity Framework?是否同时需要所有1000行?可能存在许多与性能、表大小、列数、每行中的数据、数据库是在网络资源上还是在本地、1000行没有分页等相关的问题。较差的LINQ是最不负责任的。您使用的是来自Animals的所有列吗?也许您可以通过只包含几列来改进查询。您确定这就是查询吗?这可能是datagridview的渲染。这如何回答这个问题?@SriramSakthivel他可以用它来减少设置。并在批处理Skip.Take中处理项目…但OP说他只有1000行,所以这在这方面没有用处scenario@user3568104这表明瓶颈在UI端,请尝试完全断开db并将空列表传递给DataSource@LIUFA尝试断开db的连接,几乎不需要执行时间。这是否意味着问题出在我的数据库连接或其他方面?