2014-10-23 2 views
1

возможно, еще одна ошибка новобранец, но у меня возникают проблемы с запуском цикла, чтобы обновить несколько значений.Использование ToList ForEach в ActionResult для обновления значений таблицы

Я возвращаю значение (время даты - tTS) из формы и используя для запроса таблицу. Эта часть отлично работает ... до определенной степени. Я строю это поэтапно, доказывая каждую работу и переходя к следующему. Я начал с запроса, возвращающего FirstOrDefault, и это сработало и обновило запись, поэтому запрос работает отлично. Чтобы получить несколько элементов и обновлять каждый попытались .ToList() и Еогеасп() ...

var holidaytest = db.HolidayTest 
        .Where(x => x.TimeStamp == tTS) 
        .ToList(); 

foreach(var item in holidaytest) 
{ 
    holidaytest.DecimalT = (29.5); 
} 

db.SaveChanges(); 

Я попытался многочисленные вариации выше, но получаю красную линию под .DecimalT: «System.Collections .Generic.List 'не содержит определения для «DecimalT» и не может быть найден метод расширения «DecimalT», принимающий первый аргумент типа «System.Collections.Generic.List» (вам не хватает директивы using или ссылки на сборку ?) Я использую:

using HolidaysDev.Models 
using System; 
using System.Collections; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Mvc; 

Просто для справки, я пытаюсь установить DecimalT в (29,5) е или тестирования, я изменю этот этап, работает правильно - понял, что легче работать со статическим значением.

ответ

1

Вы используете неправильные переменные в вашем Еогеаспе:

foreach(var item in holidaytest) 
{ 
    holidaytest.DecimalT = (29.5); // This is the list! 
} 

Вы должны быть с помощью item.

foreach(var item in holidaytest) 
{ 
    item.DecimalT = 29.5; // This is an item in the list and you don't need the brackets. 
} 

Вот простой, полная версия:

foreach(var item in db.HolidayTest.Where(x => x.TimeStamp == tTS)) 
{ 
    item.DecimalT = 29.5; 
} 
+0

Так просто, опять же ... Ох! Спасибо. – PawnSacrifice

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