我有一个两天都解决不了的问题。故事是这样的。
我正在使用 LINQ to SQL 从我的 MySQL 5.0 数据库中获取记录列表,但执行将中断,并显示异常:
超时已过期。操作完成之前经过的超时期限或服务器没有响应。
我首先在后端使用实体框架工作代码。这是我的代码:
context = new NebeContext();
var data2 = (from row in context.PollingStationConstituencyCandidates
where row.ElectionId.Equals(electionId) && row.ConstituencyId.Equals(constituencyId)
select new { row.LocationId, row.LocationNameA, row.PollingStationNameA, row.PollingStationNameE, row.PollingStationId }).Distinct();
List<PollingStationInfo> resultList = new List<PollingStationInfo>();
PollingStationInfo result = new PollingStationInfo();
foreach (var i in data2)
{
result = new PollingStationInfo() { LocationId = i.LocationId, LocationNameA = i.LocationNameA, NameA = i.PollingStationNameA, NameE = i.PollingStationNameE, PollingStationId = i.PollingStationId };
resultList.Add(result);
}
return resultList;
好吧,错误消息是不言自明的:您的查询花费的时间太长,数据库无法完成,并且您超时...
也:
分析 SQL,看看是否需要一些额外的索引或更好的查询。还要检查您是否没有收到 n+1 个查询
或
更改数据上下文上的超时