我正在开发一个使用ASP.NET MVC 3和实体框架代码优先的Web应用程序,后端使用SQL Server Express。
SQL Server Express falls asleep by design以节省系统资源。我对这种行为很好,但不幸的是,在SQL Server Express长时间闲置后第一次点击页面时,Entity Framework超时等待DB从空闲状态返回到活动状态。
是否有一种全局方法可以告诉实体框架在抛出异常之前等待数据库更长时间?
答案 0 :(得分:1)
我不确定DbContext API是否公开任何属性来覆盖默认命令超时,对于SQL Server提供程序来说可能是30秒。您可以尝试将DbContext
转换为ObjectContext
并在那里设置超时:
var ctx = ((IObjectContextAdapter) dbContext).ObjectContext;
ctx.CommandTimeout = 120;