У меня две таблицы Room_master
и Room_Item
Room_Master => roomid - pk, roomname
Room_Item => roomiteid - pk, roomid - fk, itemid, quantity
Мне нужен список комнат, которым не назначены никакие предметы.
Я написал SQL-запрос, как показано ниже, чтобы получить результат
select * from room where roomid in
(select roomid from (select SUM(quantity) as qty, roomid from Room_Item group by roomid )
as newtab where qty=0) order by roomid
Мой соответствующий запрос Linq выглядит следующим образом
var roomitem1 = from ri in objEntities.Room_Item
group ri by ri.roomid into p
select new { roomid = p.Key, totalitem = p.Sum(row => row.quantity) };
var roomid = roomitem1.Where(x => x.totalitem > 0).Select(x => x.roomid);
Запрос Linq работает очень хорошо, но проблема в том, что он занимает слишком много времени
вернуть данные. У меня 6000 записей в таблице Room_master
и около 70000 записей в таблице Room_item
, и для возврата данных в мое представление требуется около 2 минут ...
Как мне оптимизировать мой запрос Linq, чтобы он работал быстрее?