我有一个包含2列的表:FruitID,FruitSize。我想编写一个查询,其中包含FruitIDs和FruitSize列表,并为所有水果设置新的FruitSize。
这是我到目前为止所做的:
public void ChangeFruitSizes(List<long> TheFruitIDs, long NewFruitSize)
{
using (SomeDC MyDC = new SomeDC())
{
var TheFruits = (from f in MyDC.Fruits
where TheFruitIDs.Contains(f.FruitID)
select f).ToList();
foreach (Fruits f in TheFruits)
{
f.FruitSize = NewFruitSize;
}
MyDC.SubmitChanges();
}
}
目前还没有窃听,但数据库中的字段未更新。谢谢你的建议。
答案 0 :(得分:2)
要以更简洁的方式编写此内容,您可以在下面的列表中尝试ForEach():
using (SomeDC MyDC = new SomeDC())
{
(from f in MyDC.Fruits
where TheFruitIDs.Contains(f.FruitID)
select f).ToList().ForEach(F => F.FruitSize = NewFruitSize);
MyDC.SubmitChanges();
}
答案 1 :(得分:1)
只看代码一切正确。可能错误在于未显示的内容:模型。我怀疑你没有定义主键。在ID字段上定义主键并重新创建模型(从设计器中删除表并将其添加回来)。