Операция «объединение» объединяет две последовательности типа одинакового в один набор (т.е. удаляет все дубликаты).Поскольку у вас явно есть последовательности двух разных типов, вам не нужна операция объединения.Похоже, вам нужна операция «concat», которая объединяет две последовательности в одну.Вам нужно что-то вроде:
var result = r.Concat<object>(q);
Однако, поскольку вы используете L2E, ваш запрос будет пытаться выполнить на сервере.Поскольку ваш сервер не позволит вам объединить два запроса (из-за несовпадающих типов), вам необходимо выполнить их отдельно, а затем объединить последовательности на клиенте:
var result = r.AsEnumerable().Concat<object>(q.AsEnumerable());
Использование AsEnumerable()
выполняет запросы на сервере и передает результаты клиенту.
Поскольку оказывается, что вы хотите объединить последовательности рядом друг с другом (то есть, используя те же строки в вашей сетке, но другую группу столбцов)Вы действительно хотите операцию join
:
var result = from rrow in r.AsEnumerable()
join qrow in q.AsEnumerable() on rrow.LogDate equals qrow.LogDate
select new { rrow.LogDate,
rrow.MaxTemp, rrow.MaxTempTime,
rrow.MinTemp, rrow.MinTempTime,
rrow.MaxHum, rrow.MaxHumTime,
rrow.MinHum, rrow.MinHumTime,
qrow.MaxRainRate, qrow.MaxRainRateTime,
qrow.MaxPres, qrow.MaxPresTime,
qrow.MinPres, qrow.MinPresTime,
qrow.MaxDew, qrow.MaxDewTime,
qrow.MinDew, qrow.MinDewTime };