C# LINQ查询是否返回数据库中的所有记录?

C# LINQ查询是否返回数据库中的所有记录?,c#,entity-framework,linq,C#,Entity Framework,Linq,实体框架LINQ to Entities查询是否会从数据库返回所有记录(甚至1000万行),或者对检索记录的大小是否有任何限制?实体框架和LINQ对它们可以获取的行数没有任何限制。您可能面临的一个问题是使服务器内存不足,因为您试图一次检索该数量的数据 你应该考虑在评论中使用类似DaPror的ValkyRee,或者至少禁用“代码>代理< /C>”,如果你仍然想使用实体框架: using(var db = new MyDbContext()) { db.Configuration.Proxy

实体框架LINQ to Entities查询是否会从数据库返回所有记录(甚至1000万行),或者对检索记录的大小是否有任何限制?

实体框架和LINQ对它们可以获取的行数没有任何限制。您可能面临的一个问题是使服务器内存不足,因为您试图一次检索该数量的数据

你应该考虑在评论中使用类似DaPror的ValkyRee,或者至少禁用“代码>代理< /C>”,如果你仍然想使用实体框架:

using(var db = new MyDbContext())
{
    db.Configuration.ProxyCreationEnabled = false;
    var data = db.Users.ToList(); // suppose you have 10 milion users
}

…只要知道是什么。我仍然建议使用Dapper实现这一目的。

通常一次从数据库中获取1000万条记录不是一个好做法。您可以使用实体推荐的分页功能

限制将是当您进入
OutOfMemoryException
时。你正在处理的案件是什么?您打算对数据做什么?我个人从不使用LINQ2实体进行此类查询,而是编写存储过程并使用Dapper映射它们并返回数据。但似乎这是可能的?是的。这取决于服务器和其他许多东西。检索这么多记录时,实际上是在存档数据库。因此,请检查数据库是否有任何存档工具。