实体框架LINQ-to-Entities查询是否会从数据库返回所有记录(甚至1000万行),还是会对检索记录大小有任何限制?
答案 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万条记录并不是一个好习惯。您可以使用实体推荐的分页功能。