可能是另一个菜鸟错误,但我在循环中遇到更新多个值的问题。
我从表单返回一个值(日期时间 - tTS)并用于查询表。那部分工作得很好......到了一定程度。 我正在逐步建立这个,证明每个工作,并继续下一步。我开始使用返回.FirstOrDefault的查询,并且工作和更新了记录,因此查询工作正常。要检索多个项目并更新每个项目,请尝试.ToList()和foreach()...
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)进行测试,我将更改此阶段正常工作 - 认为使用静态值更容易。
答案 0 :(得分:1)
你在foreach中使用了错误的变量:
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;
}