2012-04-18 16 views
1

私は2日間解決できない問題があります。ここに物語があります。
は、私はSQLにLINQを使用して、私のMySQL 5.0データベースからレコードのリストを取得していますが、実行は言って例外で中断します:タイムアウト期限切れlinqを使用してSQLにデータをフェッチする際の例外

タイムアウトが発生しました。操作が完了する前にタイムアウト時間が経過したか、サーバーが応答していません。

私はエンティティフレームワークコードを最初にバックエンドで使用しています。ここに私のコードは次のとおりです。

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; 

答えて

1

まあ、エラーメッセージは、自己説明である:あなたのクエリは、データベースが完了するために時間がかかりすぎていると、あなたはタイムアウトを取得...

次のいずれかの

SQLをプロファイリングして、追加のインデックスやより良いクエリが必要かどうかを確認してください。また、あなたは取得しないのn + 1は、DataContextの上

または

変更あなたのタイムアウトを照会チェック

関連する問題