【问题标题】:Update Linq query selecting from two tables?从两个表中选择更新 Linq 查询?
【发布时间】:2023-04-09 02:03:01
【问题描述】:

我正在尝试将 sql 查询转换为 Linq,以便从我的 C# WPF 应用程序中的命令调用。我尝试使用 Linqer,但查询不会翻译。我是 Linq 的新手,并且一直在阅读。你使用 Linq 'JOIN' 来解决这个问题吗?

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

【问题讨论】:

  • AFAIK 这不能使用默认的 LINQ-to-SQL(或 LINQ-to-entities)“一步”完成,因为您需要先获取数据,更新它然后保存它回到数据库......
  • 您需要将其写为select,然后循环设置值的结果。 Linq 没有像上面那样的 update 方法。
  • var q = from tbPublicationArticles P, tbarticles a join on P.articleid equals a.articlesid p into ps from p in ps update new {Category = c, p.ProductName };
  • @BugFreeSolution 呃,那是什么?
  • SQL 语言具有复杂的数据查询集合,包括数据定义语言、数据操作语言、数据控制语言和查询。看起来LINQ 只有Queries 的等效部分。 UPDATE 命令是数据操作语言的一部分。

标签: c# sql wpf linq


【解决方案1】:

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

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();

【讨论】:

    猜你喜欢
    • 2023-03-27
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多