0

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

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 对象的集合,我们返回一个方法,那么我就无法更新记录。我试图调试,但没有通过异常!

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

4

1 回答 1

5

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

在您的最后一个示例中, dbcontext 显然是一回事。

于 2012-08-05T11:05:19.747 回答