у меня есть пачка на удаление запросов, как следующее: -Linq Как выполнять запросы в куски
DELETE FROM [Entry]
WHERE CompanyId = 1
AND EmployeeId IN (3, 4, 6, 7, 14, 17, 20, 21, 22,....100 more)
AND Entry_Date = '2016-12-01'
AND Entry_Method = 'I'
SO в моем коде, я запустить этот список запросов, как показано ниже: -
using (var ctx = new ApplicationDbContext(schemaName))
{
foreach (var item in queries)
{
ctx.Database.ExecuteSqlCommand(item);
}
}
Но в связи с большим количеством запросов, исполняющих создает блокировку на SQL, поэтому я решил выполнить запросы в куске, поэтому я нашел код ниже: -
SET ROWCOUNT 500
delete_more:
DELETE FROM [Entry]
WHERE CompanyId = 1
AND EmployeeId IN (3, 4, 6, 7, 14, 17, 20, 21, 22,....100 more)
AND Entry_Date = '2016-12-01'
AND Entry_Method = 'I'
IF @@ROWCOUNT > 0 GOTO delete_more
SET ROWCOUNT 0
Теперь проблема в том, как запустить эту вещь, поскольку я ее запускал до ctx.Database.ExecuteSqlCommand
?
Каким образом я могу запустить этот код запроса chunk в Linq?
ли Вы, попробуйте просто поместить весь этот оператор в строку и запустить с помощью 'ExecuteSqlCommand'? –
@ Nick.McDermaid Я обязательно попробую это. – Anup
«не работает» не работает для меня. Вы получаете сообщение об ошибке или не делаете то, что ожидаете? Я понятия не имею, работает ли это на самом деле. Мне просто кажется, что так будет. –