java 实体框架_实体框架超时

在使用需要超过30秒才能完成的函数导入时,我正在使用实体框架(EF)获得超时 . 我尝试了以下操作,但无法解决此问题:

我将 Default Command Timeout=300000 添加到项目中App.Config文件中的连接字符串中,该文件具有建议的here的EDMX文件 .

这是我的连接字符串的样子:

name="MyEntityConnectionString"

connectionString="metadata=res://*/MyEntities.csdl|res://*/MyEntities.ssdl|

res://*/MyEntities.msl;

provider=System.Data.SqlClient;provider connection string="

Data Source=trekdevbox;Initial Catalog=StarTrekDatabase;

Persist Security Info=True;User ID=JamesTKirk;Password=IsFriendsWithSpock;

MultipleActiveResultSets=True;Default Command Timeout=300000;""

providerName="System.Data.EntityClient" />

我尝试直接在我的存储库中设置CommandTimeout,如下所示:

private TrekEntities context = new TrekEntities();

public IEnumerable GetKirksFriends()

{

this.context.CommandTimeout = 180;

return this.context.GetKirksFriends();

}

我还能做些什么来让EF超时?这仅适用于非常大的数据集 . 小数据集一切正常 .

这是我得到的错误之一:

System.Data.EntityCommandExecutionException:执行命令定义时发生错误 . 有关详细信息,请参阅内部异常---> System.Data.SqlClient.SqlException:超时已过期 . 操作完成之前经过的超时时间或服务器没有响应 .

好的 - 我得到了这个工作,发生了什么事很愚蠢 . 我有连接字符串 Default Command Timeout=300000 和CommandTimeout设置为180.当我从连接字符串中删除 Default Command Timeout 时,它工作 . 所以答案是在上下文对象中手动设置存储库中的CommandTimeout,如下所示:

this.context.CommandTimeout = 180;

显然在连接字符串中设置超时设置对它没有影响 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值