Выполнение запроса в LINQ занимает слишком много времениC#

Место общения программистов C#
Ответить
Anonymous
 Выполнение запроса в LINQ занимает слишком много времени

Сообщение Anonymous »

Я написал запрос, который должен брать все строки из одной таблицы и выполнять подзапрос ко второй таблице, извлекая только одно значение из самой последней записи. В SQL Server выполнение запроса занимает около 15 секунд, а запрос LINQ — около 2 минут. Может кто-нибудь помочь мне с переводом SQL в LINQ, должно быть, я сделал что-то не так.

SQL:

SELECT a.isrunning,
worktype = (
SELECT TOP 1
w.worktype
FROM dbo.workorder w WITH (NOLOCK)
WHERE w.assetnum = a.assetnum
ORDER BY w.statusdate DESC
),
a.status,
*
FROM dbo.asset a WITH (NOLOCK)
WHERE a.assetnum IN ('list', 'of', 'asset', 'numbers')


Запрос LINQ:

(
from a in db.assets
let wo = (
from w in db.workorders
where w.assetnum == a.assetnum
orderby w.statusdate descending
select w).FirstOrDefault()
where aliasStrings.Contains(a.assetnum)
select new AssetWithWorkType {
...
}
);


Подробнее здесь: https://stackoverflow.com/questions/303 ... te-in-linq
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»