Простой вопрос - что это на самом деле делает?
var oq = (ObjectQuery<TEntity>)L2EQuery; return ExecuteFirstorDefault<TEntity>(oq, MergeOption.AppendOnly);
Отчасти это из книги Джулии Лерман (Framework of Entity Framework).
Сам актер делает только проверку типа. Поскольку ваш запрос имеет тип ObjectQuery , он выполняется успешно. Я предполагаю, что для ExecuteFirstOrDefault требуется аргумент этого типа, следовательно, приведение.