繁体   English   中英

使用EntityFramework 4.1或更高版本查询大数据时遇到超时

[英]Experiencing timeouts while Querying big data using Entityframework 4.1 or higher

使用EF 4.1,我试图查询5万个大数据表。 我为DbContext设置了相对较高的超时:

   public class YourContext : DbContext
{
  public YourContext()
    : base("YourConnectionString")
  {
    // Get the ObjectContext related to this DbContext
    var objectContext = (this as IObjectContextAdapter).ObjectContext;

    // Sets the command timeout for all the commands
    objectContext.CommandTimeout = 500;
  }
}

但是仍然似乎还不够,但是当我使用(10000)时,它可以工作。 我这里没有服务器端分页的选项。 很高兴知道如何摆脱这种超时情况。

是由实现或存储库模式引起的还是EF无法处理大数据?

您在那儿走的路很差...

从数据库加载所有数据是一种不好的做法。
如果您实现了服务器端分页,或者如果您不需要填充,则只需实现按需加载功能会更好。

我认为用户将查看所有这些数据,因此不需要从数据库中获取它。

最好每天多花一些小时,但要正确处理。

正如实践所示,您将收到客户/客户/用户对性能的抱怨,您将不得不正确地重写漏洞。

您最好三思而后行,不要偷懒;)

EF可以处理大数据。

正如您已经知道大多数“连接”所具有的一样,这只是一个配置(您还可以在ADO.net中使用timeOut)。 默认情况下,它设置为30秒,您可以更改它

确定EF在您当前的情况下可以处理的最大数据非常困难。我建议选择延迟加载,但无法完全解决问题。 如果我在您的位置,我可能会尝试使用某些缓存功能,因为分页在您的情况下也不可行。

这些只是我的建议,并非解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM