我想使用类似的东西加入两个数据表:
update u
set datatable1.column["state"]= datatable2.column["state"]
from datatable1 u
inner join datatable2 s on
u.column["header"]= s.column["header"]
linq的语法是什么?
答案 0 :(得分:1)
您不应该尝试修改LINQ 查询中的内容。如果LINQ查询导致副作用,这是不好的做法。但是您可以收集更新所需的信息:
var updateQuery = from r1 in datatable1.AsEnumerable()
join r2 in datatable2.AsEnumerable()
on r1.Field<string>("header") equals r2 .Field<string>("header")
select new { r1, r2 };
foreach(var x in updateQuery)
{
x.r1.SetField("state", x.r2.Field<string>("state"));
}
查询实际上只是一个查询,它只在foreach
处执行一次,而且每次因为LINQ的延迟执行而访问updateQuery
变量时也是如此。如果你不想要这个,你必须创建一个集合,f.e。使用ToList
或ToArray
。