【问题标题】:right join on my linq query正确加入我的 linq 查询
【发布时间】:2017-02-05 10:42:45
【问题描述】:

我想从 db.Accounts 返回所有项目。 如何对以下 linq 查询进行右连接?

        var query = (
                     from tradeTbl in db.Trades
                     join acctTbl in db.Accounts on tradeTbl.AccountID equals acctTbl.AccountID

我试过改成

        var query = (
                    from acctTbl in db.Accounts
                    join tradeTbl in db.Trades on acctTbl.AccountID equals tradeTbl.AccountID
                    where acctTbl.AccountActive == true

仍然无法正常工作...如果我将相同的查询放入 SSMS 并将其更改为 LEFT JOIN 它可以在 SSMS 中工作

【问题讨论】:

  • 这就是问题...我不知道该怎么做。通常我会正确的 RIGHT JOIN acctTbl
  • 似乎无法正确,我在上面发布代码

标签: linq right-join


【解决方案1】:

只需通过反转连接的表将其写入左(外)连接即可。

var query =
    from a in db.Accounts
    join t in db.Trades on a.AccountID equals t.AccountID into ts
    from t in ts.DefaultIfEmpty()
    select ...;

【讨论】:

  • 我一定遗漏了一些简单的东西。我试过你的,但它仍然没有返回 db.Accounts 中的所有值。如果我把同样的东西放在 SSMS 中并将其更改为 LEFT JOIN,它就可以工作。
  • 对不起,我到处跑。它应该是左外连接,但我把它和内连接混在一起了。
猜你喜欢
  • 2013-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多