【问题标题】:LINQ-to-SQL Update issueLINQ-to-SQL 更新问题
【发布时间】:2012-08-05 10:59:59
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 所以每次我想更新我都必须选择然后更新相同的方法,只是为了与 dbContext 范围保持一致?
    • 不,你没有。但是你必须想办法在单个 dbContext 上执行这些操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多