【发布时间】:2013-01-16 07:00:00
【问题描述】:
知道如何将其转换为 linq 吗?
SELECT DISTINCT PartNumber AS [PartNumber That Includes EVERY ItemNumber Listed in @RequiredItemsTable]
FROM Part.BillsOfMaterialsFlattened AS bom1
WHERE NOT EXISTS
(SELECT *
FROM @RequiredItemsTable w
WHERE NOT EXISTS
(SELECT *
FROM Part.BillsOfMaterialsFlattened AS bom2
WHERE (bom1.PartNumber = bom2.PartNumber)
AND (bom2.ItemNumber = w.ItemNumber)));
我在这个网站上看到了几个例子,试图模仿它们....但到目前为止还没有到达那里。
谢谢!
这是我通过 linq 实现的目标的表格示例。前面的 T-SQL 可以解决问题。
Part.BillsOfMaterialsFlattened
PartNumber ItemNumber
10041047 10034480
10041047 10041090
10041047 10041091
10041048 10034480
10041048 10041091
10041049 10034650
10041049 10041090
10041049 10041091
10041050 10034650
10041050 10041091
10041061 10001331
10041061 10001422
@RequiredItemsTable
ItemNumber
10041090
10041091
希望 LINQ 语句生成IQueryable<String>
PartNumber (Part Numbers that include all Required Item Numbers)
10041047
10041049
【问题讨论】:
-
我试图按照这篇文章中概述的技术:stackoverflow.com/questions/899090/linq-where-not-exists 使用这段代码......好吧,我有很多行被注释掉了,我不确定哪个集合完全模拟了该技术。我还看了这篇文章:stackoverflow.com/questions/2114342/…,我对它的将代码重组为 sargable 谓词的技术很感兴趣。我以前从未听说过“sargable”这个词(我有机械工程背景)。我想要一个非常高效的 linq 查询。
-
这个网站的限制对我来说似乎很奇怪。上帝禁止你在写评论的过程中起床泄密。说真的,最多 5 分钟来编辑您的评论。最后,我试图跟随 Joe Celko 的部门,并在此处发布剩余技术:simple-talk.com/sql/t-sql-programming/…