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

时间:2017-07-16 05:37:24

标签: c# entity-framework linq

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

2 个答案:

答案 0 :(得分:1)

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

你应该考虑使用Dapper之类的东西作为评论中提到的Valkyriee,或者如果你仍然想要使用Entity Framework,至少禁用proxy

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

...请注意disabling proxy will cause。我仍然建议将Dapper用于此目的。

答案 1 :(得分:0)

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