Я не думаю, что проблема в том, что у вас есть 10M записей, поскольку запрос еще не выполняется вообще (поскольку вы не вызывали ToList
или ToArray
).
Что требует времени, так это генерация сценария SQL.
Я думаю, что сначала удалите некоторые параметры вашего запроса, например, удалите OrderBy
и задайте значение Where, где будет только p.STATE_NO == stateCode
, и проверьте, что будет потом.
Затем, шаг за шагом добавьте некоторые параметры, и вы увидите, что вызывает проблему.
Может даже случиться так, что такого рода сравнение дат не поддерживается, или, может быть, STATE_NO - это тип, отличный от stateCode, я не уверен, я просто думаю громко.
Это поможет вам разобраться с проблемой.
Вы также хотели бы проверить работу с Entity-SQL или программно (или даже жестко запрограммированным запросом) при формировании запроса (без linq), это поможет вам добраться проблема.
Еще одна мысль, которую вы хотели бы рассмотреть, - это использовать ToTraceString
, чтобы увидеть, что EF генерирует для вашего linq.
Однако, если вышеперечисленное не помогло вам ни с чем, вам придется предоставить нам ваши данные об исключениях / трассировку стека, чтобы дать нам представление о том, что все это значит.