Снова отложено выполнение ударов!
(Во-первых, я предполагаю, что это вызвано тем, что p.somemoredate имеет значение null где-то в вашей коллекции.)
Учитывая ваш пример, мы не можем по-настоящему узнать, так как вы упростили биты, которые запрашиваются. Взглянув на это, я бы сказал, что на что-то, на что вам нужно обратить внимание, «somedata» или «somemoredate».
Чтобы выяснить это, (когда я действительно отчаялся) я разбил запрос на части и посмотрел, где генерируются исключения. Обратите внимание на вызовы .ToArray (), которые в основном «останавливают» отложенное выполнение временно:
var sd = somedata.ToArray();
var x = (from p in sd from h in p.somemoredate.ToArray()).ToArray(); //My guess is that you'll get your exception here.
Разобравшись вот так, гораздо проще увидеть, где генерируется исключение и где искать проблемы.