我已经仔细阅读了有关使用多个条件将 LINQ 中的表与左连接链接的其他问题,并尝试了我认为的相关示例,但我无法创建 C# LINQ 代码来获得我需要的结果。
我有两张桌子。第一个是ProductionOptions,第二个是ProductionOrderDetailsOptions。
这是 ProductionOptions 表的内容(为简洁起见,按 optionType 过滤)
optionType optionValue order showTextBox
----------------------------------------------------------
PACKAGING BLACK BOX 8 False
PACKAGING CUSTOM FOLDING WITH LOGO 4 True
PACKAGING FLANNEL DUST BAG 6 False
PACKAGING FOLDING 2 False
PACKAGING IMAGE FOLDING 1 False
PACKAGING NAVY BOX 9 False
PACKAGING OTHER 13 True
PACKAGING PLAIN FOLDING 3 False
PACKAGING POLYBAG 5 False
PACKAGING SET UP BOX BLACK 11 True
PACKAGING SET UP BOX CREAM 10 True
PACKAGING SET UP BOX NAVY 12 True
PACKAGING SHRINK WRAP 7 False
这是 ProductionOrderDetailsOptions 表:
orderNo detailKey optionType optionValue optionAdditionalInfo
---------------------------------------------------------------------------
000001 1 PACKAGING IMAGE FOLDING
000001 1 PACKAGING POLYBAG NULL
000001 1 PACKAGING SET UP BOX BLACK needs white lettering
000007 4 PACKAGING CUSTOM FOLDING WITH LOGO BMW
现在,我想要在左连接到 ProductionOrderDetailsOptions 表时显示 ProductionOptions 表中的所有行。
这是我需要的 LINQ 的 SQL 等价物:
SELECT *
FROM ProductionOptions po
LEFT JOIN ProductionOrderDetailsOptions o on po.optionType = o.optionType
AND po.optionValue = o.optionValue
AND o.orderNo = '000001'
AND o.detailKey = 1
WHERE po.optionType = 'PACKAGING'
这是我想要的结果:
表面上我想将 LINQ 结果绑定到像 GridView 这样的对象。
如果你能走到这一步,我要感谢你的耐心......