대량의 채워진 탐색 속성을 끌어온 쿼리를 사용하고있었습니다. 본질적으로이 속 : MySql.Data.MySqlClient :IO 작업의 시간 초과
using(var context = new MyApplicationContext())
{
DbSet<BaseTable> dbSet = context.Set<BaseTable>();
IQueryable<BaseTable> query = dbSet;
query = query.Include(entity => entity.T.C);
query = query.Include(entity => entity.TC.Select(tc => tc.T.M));
query = query.Include(entity => entity.TC);
query = query.Include(entity => entity.W.FW.F.S);
query = query.Include(entity => entity.W.FW.P);
query = query.Include(entity => entity.W.PL.P);
query = query.Include(entity => entity.W.PL);
query = query.Include(entity => entity.W.E);
query = query.Include(entity => entity.E);
query = query.Where(set of conditions);
List<BaseTable> Loaded = query.ToList();
}
그러나,이 코드를 실행하는 IO 동작에서 오류
초과
[IO 동작에서 초과 TimeoutException]을 생성. TimedStream.StopTimer() +168
MySql.Data.MySqlClient.TimedStream.Read (Byte [] 버퍼, Int32 오프셋, Int32 개수) +148
System.IO.BufferedStream.Read (Byte [] array, Int 32 오프셋, Int32 개수) +262
MySql.Data.MySqlClient.MySqlStream.ReadFully (스트림 스트림, Byte 버퍼, Int32 오프셋, Int32 개수) +86
MySql.Data.MySqlClient.MySqlStream.LoadPacket() + 110
MySql.Data.MySqlClient.MySqlStream.ReadPacket() +59
MySql.Data.MySqlClient.NativeDriver.GetResult (INT32 & affectedRow, INT64 & insertedId) +100
MySql.Data.MySqlClient.Driver.GetResult (Int32 statementId, Int32 & affectedRows, Int64 & insertedId) +54
MySql.Data.MySqlClient.Driver.NextResult (Int32 statementId, Boolean 힘) 145
MySql.Data.MySqlClient.MySqlDataReader.NextResult() 1939
(CommandBehavior를 동작은) 어떻게이 쿼리하도록 허용 할 수 있습니다 524
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader 적재하기에 충분한 시간입니까?
당신이 연결 문자열의 기본 명령 제한 시간을 지정하는 데 충분한 있는지 알 수 있습니까? 또는 위에 표시된대로 지정해야합니까? – chriszumberge
@chriszumberge - 이것은 코드에서 변수 설정을 보여주는 것입니다. 또한 연결 문자열에 설정할 수도 있지만,이 긴 시간 제한을 항상 설정하지 않는 것이 좋습니다. –