LINQ-to-SQL更新问题

时间:2012-08-05 11:00:00

标签: c# .net linq linq-to-sql

我正在尝试更新Tag表中的标签列表,如下所示:

List<Tag> tagList = GetUnitTagList(unitId);

        foreach (Tag tag in tagList)
        {
            tag.count = tag.count - 1;
        }

        db.SubmitChanges();

这里是GetUnitTagList()方法:

public static List<Tag> GetUnitTagList(int unitId)
{
    DataClassesDataContext db = new DataClassesDataContext();

    var tags = from x in db.UnitTags where x.UnitID == unitId select x.Tag;

    return tags.ToList();
}

但是我想要更新的价值没有得到更新。

但是,以下代码可以正常工作:

var tags = from x in db.UnitTags where x.UnitID == unitId select x.Tag;

        foreach (Tag tag in tags)
        {
            tag.count = tag.count - 1;
        }

        db.SubmitChanges();

看起来如果我得到Tag对象的集合,我们返回一个方法然后我无法更新记录。我尝试调试,没有异常!

那么,为什么第一种更新记录的方式不起作用,而第二种方式它没有问题呢?

1 个答案:

答案 0 :(得分:5)

您正在从一个dbContext更新实体(在GetUnitTagList中创建)并在另一个上调用SubmitChanges(在您未向我们展示的地方创建)。

在你的上一个例子中,dbcontext显然是同一个。