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()
我被这个加入代码卡住了,我需要一些帮助。
我想做这个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()