C# LINQ连接到表并更新其中一个表

d7v8vwbk  于 2022-12-30  发布在  C#
关注(0)|答案(1)|浏览(170)

我有一个不值得羡慕的任务,那就是在一个大型的遗留C#应用程序中查找任何包含跨数据库引用的嵌入式SQL。我们正在更改安全性,以便任何连接一次只能访问一个数据库。因此,我必须将此类查询更改为对两个数据库的两个数据库查询,然后在内存中执行结果连接。
我有一个查询,结果是两个数据表dtA和dtB。我需要内部连接它们并更新dtA。这在SQL中是相当基本的,但在LINQ中遇到了困难。
到目前为止我有:

(from a in dtA.AsEnumerable()
 join b in dtB.AsEnumerable() on a["accountno"] equals b["acc_no"]
 select a["fieldA"], b["fieldB"]).ToList().<what do I put here to update a["fieldA"] = b["fieldB"] in dtA?>

我咨询过的其他问题显示了如何从自身更新单个数据集,但我找不到任何连接的结果。谢谢。

icnyk63a

icnyk63a1#

LINQ是用来查询的,不是用来变异的,你可以用foreach来实现这个目的:

var joined = 
    from a in dtA.AsEnumerable()
    join b in dtB.AsEnumerable() on a["accountno"] equals b["acc_no"]
    select (a, b);

foreach (var pair in joined)
    pair.a["fieldA"] = pair.b["fieldB"];

相关问题