Удалить запрос с помощью Где в LINQ - PullRequest
0 голосов
/ 12 октября 2018
DELETE From Table
WHERE ID in (1,2,3, ... )

Есть ли способ создать следующий запрос в LINQ?Я попытался RemoveRange, но из SQL Server Profiler обнаружил, что он фактически удаляет записи отдельно

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

Вы можете написать это в одну строку

table.RemoveAll(tbl => tbl.id == 1 || tbl.id == 2 || tbl.id == 3);

Надеюсь, это поможет.

0 голосов
/ 12 октября 2018

Вы можете сначала определить элементы, которые нужно удалить, а затем выполнить итерацию по списку, удаляя их один за другим: (обратите внимание, что вся операция должна выполняться внутри контекста базы данных, иначе она не будет работать)

var toRemove = list.Where(l => l.id == 1 || l.id == 2 || l.id == 3);
foreach (var item in toRemove)
{
    databasecontext.table.Remove(item);      //replace databasecontext.table with your own context and table name
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...