Мне нужно преобразовать этот код в запрос linq.Как преобразовать запрос SQL Join в LINQ?
Следующий запрос дает мне исправить общее количество в MS SQL.
SELECT SUM(t1.itemPrice + t2.itemPrice) as TOTAL FROM table1 t1, table2 t2 WHERE r.userID = u.userID
Я пытаюсь получить этот же код для работы в Linq запроса, так что я могу использовать его в моем проекте MVC4.
Моя попытка не работает в основном b/c. Я еще не очень хорошо знаком с Linq. здесь:
--Linq--
var query = (from t1 in db.table1
join table2 in db.table2
on t1.userID equals t2.userID
select new { SUM (t2.itemPrice + t1.itemPrice) });
Очевидно, что выше не работают. Может ли кто-нибудь помочь?
Оба решения прекрасно работало. Спасибо вам обоим! – ceci
OOPS ... Я просто понял, что это дает мне неправильную сумму. Поскольку запрос использует JOIN, SUM() ошибочен. Например, скажем, table1 1 строка со значением $ 60 и table2 имеет 2 строки по 1 каждый со значением 5. Вышеуказанный запрос возвращает SUM из 130 (60 + 60 + 5 + 5). Правильный ответ должен быть 70 (60 + 5 + 5). – ceci
Как мы можем использовать UNION ALL? Кажется, он возвращает правильную сумму. 'select отдельный t1.itemЦена из таблицы1 t1 союз все выбрать отдельный t2.itemЦена из таблицы2 t2' – ceci