如何用linq更新记录

时间:2014-03-18 14:20:17

标签: c# linq

我只想用linq更新记录。这是我想要的查询:

using (DataClassesDataContext db = new DataClassesDataContext())
{
    var query = db.Surrenders.Where(s => s.Id.Equals(int.Parse(query_id.Value.ToString()))).Select(s => s).ToList();
    foreach (var item in query)
    {
        if (item != null)
        {
            item.IsRead = false;
            db.SubmitChanges();
            break;
        }
    }
}

但这不起作用。 好吧,我发现了一些有用的东西,表明“LINQ仅用于查询”而不是用于提升。 如何使用db.SubmitChanges();进行更改?

1 个答案:

答案 0 :(得分:2)

您正在发出break关键字,它允许您退出循环,因此只进行一次迭代。此外,您可以将SubmitChanges()移出循环,因此只调用一次,而不是每次迭代调用一次。

删除它,以便您的代码段如下所示:

using (DataClassesDataContext db = new DataClassesDataContext())
{
    var query = db.Surrenders.Where(s => s.Id.Equals(int.Parse(query_id.Value.ToString()))).Select(s => s).ToList();
    foreach (var item in query)
    {
         if (item != null)
         {
             item.IsRead = false;
         }
    }
    db.SubmitChanges();
}