Left join with multiple conditions asp.net 核心

Left join with multiple conditions asp.net core

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

我想做这个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()

但是不行。 如果有人可以帮助我提前感谢。 谢谢

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