我想更新linq查询返回的结果集中列的值。
我的代码是这样的
var result=from r in db.contents
select new { match = r.text, id = r.id, index1 = (long)-1}
-- some calculation to find index value --
-- now update r.index=calculatedIndexValue for each record in result
这种操作可能吗?
答案 0 :(得分:1)
LINQ是一种查询语言 - 不是编辑语言。对于实体操作(更改等),您需要使用数据上下文/实体管理器等面向对象的部分。所以基本上,您需要:
r
)(单独或在anon类型内);更新此对象,并调用上下文“保存”方法(SubmitChanges()
等)。答案 1 :(得分:0)
不要这么认为,不是不做新的查询(或重写原文),以便它返回非匿名类型(即使用linq 2 sql或实体生成的类型)。