【问题标题】:Left join with multiple conditions asp.net core左加入多个条件asp.net核心
【发布时间】:2021-06-21 07:09:10
【问题描述】:

我被这个加入代码卡住了,我需要一些帮助。

我正在寻找做这个 sql 语句

FROM regSupplier st
LEFT JOIN regSupplierBankAccount sba ON st.nSupplierCode = sba.nSupplierCode AND sba.isDefault = 1

但是在 c# 中是这样的

FROM st IN dbContext.regSupplier
JOIN sba IN dbContext.regSupplierBankAccount ON NEW {st.nSupplierCode} EQUALS NEW {sba.nSupplierCode, sba.isDefault = 1} INTO joinBank
FROM jb IN joinBank.DefaultIfEmpty()

但它不起作用。 如果有人可以帮助我提前感谢。 谢谢

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-core asp.net-mvc-4


    【解决方案1】:

    LINQ 中用于连接条件的表达式必须是等价的。您正在尝试比较两种永远不相等的表达式,因此加入将失败。 实际上,第二个数据库集需要where,如下所示:

    from st in dbContext.regSupplier
    join sba in dbContext.regSupplierBankAccount.Where(e => e.isDefault == 1)
         on st.nSupplierCode equals sba.nSupplierCode into joinBank
    from jb in joinBank.DefaultIfEmpty()
    

    【讨论】:

      猜你喜欢
      • 2019-09-23
      • 1970-01-01
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 2021-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多