从SQL到数据集
本文关键字:数据集 SQL | 更新日期: 2023-09-27 18:04:27
我在将SQL Join语句转换为LINQ到数据集时遇到了麻烦。另外,考虑到LINQ语句中还有其他表,Header表将被连接到这些表中。下面是我的Join语句-任何帮助都是感激的。
FROM Header
LEFT JOIN Address
ON Header.Customer = Address.Customer
AND Header.Company = Address.Company
AND ((Header.ShipTo = 'TEMP' AND Header.DocNum = Address.ShipTo)
OR Header.ShipTo <> 'TEMP' AND Header.ShipTo = Address.ShipTo)
在Linq中执行连接使用Equals()
方法。当使用多个列时,您必须创建一个结构相同的匿名类型进行比较。
from h in db.header
join a in db.address
on new {
cust = h.Customer,
comp = h.Company
}
equals new
{
cust = a.Customer,
comp = a.Company
}
where ((h.ShipTo == "TEMP" && h.DocNum == a.ShipTo)
|| h.ShipTo != "TEMP" && h.ShipTo == a.ShipTo)
select h;