2014-01-10 2 views
-1

У меня есть таблица, в которой хранится информация обо всех контактах, которые были добавлены для отправки кампании SMS.Массовое обновление с LINQ на основе списка

Каждое SMS-сообщение связано с кампанией. В этой записи используется кампания.

Получатель сообщения отправил mobile_numbers и campaign_id у поставщика услуг после того, как взлом сделан для кампании.

Теперь мне нужно перебрать таблицу smscontacts и выполнить следующее.

Сначала получите все записи, имеющие campaign_id. Обновите таблицу, обновив столбец issent как 1 для всех контактов, у которых есть номер мобильного телефона, в списке mobile_numbers, отправленном провайдером после взрыва.

Edit:

Найти строки, которые имеют значение столбца для мобильного столбца номера в списке mobile_numbers и обновить другие столбцы значение, называемое для этих записей.

+4

Ваш вопрос не понятен вообще. –

+0

sam, у меня есть список с мобильными номерами. Мне нужно итерации в таблице и получить все записи, содержащие номер мобильного телефона из списка. а затем обновить там статус isent отправлен, установив его 1 –

ответ

2

Предполагая, что ваше свойство MobileNumber является строкой и оно равно пустой, пустой строке или пробелу, если оно не установлено, выполните следующие действия.

// Get contacts that have a mobile number 
IQueryable<Contact> contactsWithANumber = context.Contacts.Select(x => !string.IsNullOrWhiteSpace(x.MobileNumber)); 

// foreach 
foreach(Contact c in contactsWithANumber) 
{ 
    c.IsSent = 1; 
} 

// .ForEach() 
contactsWithANumber.ForEach(c => c.IsSent = 1); 

// Update in db. 
context.SaveChanges(); 
-1

Вы можете использовать ExecuteCommand обновить несколько записей:

yourContext.ExecuteCommand("UPDATE YourTable SET issent= 1 WHERE YourCondition"); 

Для получения дополнительной информации см DataContext.ExecuteCommand Method

+1

Это не linq и не рекомендуется с EF –

+0

Привет Сэм, метод ExecuteCommand очень полезен для массовых обновлений, потому что все работы реализованы движком SqlServer и его не нужно извлекать все записи, обновления и затем делать изменения отправки. –

+0

это теперь dataContext.Database.ExecuteSqlCommand, я считаю. – richardwhatever

Смежные вопросы