Переместить записи в другую таблицу, используя LINQ to SQL - PullRequest
0 голосов
/ 24 февраля 2010

Я неожиданно столкнулся с проблемой перемещения некоторых записей в базе данных SQL Server из одной таблицы в другую, используя LINQ to SQL.Можно ли написать в LINQ to SQL запрос так же просто, как этот:

INSERT INTO Table2 SELECT * FROM Table1 WHERE Selected = 1
GO

DELETE FROM Table1 WHERE Selected = 1
GO

без использования циклов и коллекций?

Ответы [ 3 ]

1 голос
/ 24 февраля 2010

Мне неизвестен способ перемещения строк в Linq2Sql без цикла. :)

Такого рода вещи намного проще в SQL. Вы можете использовать предложение output into для перемещения строк в одном операторе:

delete from Table1
output deleted.id, deleted.name into Table2
where Selected = 1
1 голос
/ 24 февраля 2010

Вам абсолютно не нужно LINQ здесь. Подумайте о последствиях для производительности и удобства обслуживания, связанных с выпуском двух операторов SQL (или вызовом sproc), по сравнению с необходимостью загружать потенциально тысячи объектов и затем сохранять их снова.

Курорт до SqlCommand с. Это будет ваш лучший выбор.

0 голосов
/ 24 февраля 2010

Это простой метод вставки и удаления, который должен быть написан вместе.

Одна вставка необходимых полей во вторую таблицу, и когда она будет завершена, второй оператор удалит поля из первой таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...