Linq to sql обновить несколько записей из списка записей - PullRequest
2 голосов
/ 27 января 2012

Здравствуйте, я разрабатываю одно приложение wpf.Я использую linq to sql для всех операций с базой данных.

Теперь я хочу обновить несколько записей одновременно из списка записей, сравнивая их первичный ключ.то есть в sql server 2005

мы передаем один xml в процедуру и открываем его и обновляем записи типа

SELECT * INTO #TMP FROM openxml(Myxml);

UPDATE myPhysicalTable SET 
    myColumnName = #TMP.myColumnName
    , myColumnName1 = #TMP.myColumnName1
    FROM #TMP 
   WHERE myPhysicalTable.pkid = #TMP.pkid

, теперь я хочу сделать то же самое здесь с linq до sql, затем, пожалуйста, предложите правильный путь.

1 Ответ

0 голосов
/ 27 января 2012

Linq to sql не поддерживает готовые операции на основе набора.Поэтому вам нужно что-то вроде этого

  • var x = select
  • foreach + update
  • submitchanges

Update Что касается вашего комментария, то да: он будет менее эффективным, чем ОБНОВЛЕНИЕ в SQL.Linq to Sql будет отправлять по одному обновлению для каждого обновления.Даже если вы вызовите SubmitChanges () только один раз, вы получите отдельные обновления (но в одной транзакции).

Так что вы можете пересмотреть использование Linq2sql для этой конкретной операции, особенно если у вас большие наборы.

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