Eya*_*yad 0 .net c# linq linq-to-sql
我正在尝试更新Tag表中的标签列表,如下所示:
List<Tag> tagList = GetUnitTagList(unitId);
foreach (Tag tag in tagList)
{
tag.count = tag.count - 1;
}
db.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)
这是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();
}
Run Code Online (Sandbox Code Playgroud)
但我试图更新的价值没有得到更新.
但是,以下代码可以正常工作:
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();
Run Code Online (Sandbox Code Playgroud)
看起来如果我得到一个Tag对象的集合我们一个方法返回然后我无法更新记录.我尝试调试,没有异常!
那么,为什么更新记录的第一种方式不起作用,而第二种方式它没有问题呢?
您正在从一个dbContext(创建GetUnitTagList
)更新实体并调用SubmitChanges
另一个(在某个您未向我们展示的地方创建).
在你的上一个例子中,dbcontext显然是同一个.