C# 是否从两个表中选择更新Linq查询?

C# 是否从两个表中选择更新Linq查询?,c#,sql,wpf,linq,C#,Sql,Wpf,Linq,我正在尝试将sql查询转换为Linq,以便从我的C WPF应用程序中的命令调用。我尝试使用Linqer,但查询无法转换。我是Linq的新手,一直在四处阅读。您是否使用Linq“连接”来解决此问题 update P set P.versionid=a.versionid from tbPublicationArticles P, tbarticles a where P.articleid=a.articlesid 首先获取数据,将两个表连接在一起: var results = from p

我正在尝试将sql查询转换为Linq,以便从我的C WPF应用程序中的命令调用。我尝试使用Linqer,但查询无法转换。我是Linq的新手,一直在四处阅读。您是否使用Linq“连接”来解决此问题

update P 
set P.versionid=a.versionid
from tbPublicationArticles P, tbarticles a
where P.articleid=a.articlesid

首先获取数据,将两个表连接在一起:

var results = from p in db.tbPublicationArticles
              join a in db.tbarticles on p.articleid = a.articlesid
              select new { p, a };
现在,您可以循环查看结果并进行所需的更改:

foreach(var item in results)
{
    item.p.versionid = item.a.versionid;
}
不要忘记保存您的更改:

db.SaveChanges();

如果使用默认的LINQ to SQL或LINQ to entities不能一步完成,因为您需要首先获取数据,更新数据,然后将其保存回DB…您需要将其写入select,然后通过设置值的结果进行循环。Linq没有像上面那样的更新方法。var q=from tbPublicationArticles P,tbarticles P.articleid上的连接等于ps update new{Category=c,P.ProductName}中的P到ps的a.articlesid P@SQL语言有一个复杂的数据查询集合,包括数据定义语言、数据操作语言、数据控制语言和查询。看起来LINQ只有相当一部分的查询。UPDATE命令是数据操作语言的一部分。