Как обновить количество строк в таблице с помощью Linq - PullRequest
0 голосов
/ 21 июля 2011

Я использую следующий код для обновления столбца UserSession в Activity. Следующий код возвращает записи, если ExpiryTimeStamp меньше текущей даты. Затем он обновляет столбец UserSession до 0 для возвращенных записей в таблице. Теперь я хочу, чтобы, если было возвращено 100 записей, они должны обновляться за один раз вместо использования FoREach. Это возможно в Linq

CacheDataDataContext db = new CacheDataDataContext();
                var data = (from p in db.Activities
                            where p.ExpiryTimeStamp < DateTime.Now
                            select p).ToList();
                data.ForEach(ta => ta.UserSession = "0");
                db.SubmitChanges();

1 Ответ

0 голосов
/ 21 июля 2011

Короче, нет: Linq-2-sql не производит пакетные обновления из коробки.

(я не уверен, что ваш foreach будет работать так, как вы написали - я так не думаю - но это похоже и будет работать)

foreach (var x in data)
{x.UserSession = "0";}
db.SubmitChanges()

НО, даже если вы сделаете это так, Linq-2-sql отправит оператор обновления для каждой записи в базу данных. Таким образом, с вашим примером возвращенных 100 записей вы получите 100 отдельных обновлений, отправленных в базу данных.

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