c# Lambda表达式的SQL [IN]语句等效是什么?
本文关键字:语句 是什么 IN 表达式 Lambda SQL | 更新日期: 2023-09-27 18:08:13
我就在这种情况下。我有两个不同对象类型的列表,它们都有一个共享的属性值。假设它是invoiceID
在SQL中,如果我想从table_A
中抓取所有记录,因为它具有列invoiceID
值与table_B
内的任何invoiceId
匹配,我可能会这样做。
Select *
From table_A
where invoiceID in ( select invoiceId from table_B)
对于这种情况,c#中等效的LINQ或Lambda表达式是什么?我习惯使用单个值在列表中搜索元素,例如:
var result = list_A.Where(x=>x.InvoiceID = someInvoiceID)
或.contains()
代替
但是,这只能覆盖一个invoiceID
值。
我想,我可以在list_B
上运行每个invoiceID
的循环,然后将结果存储在另一个列表中,但我只是想知道是否有更好的方法来做到这一点?
以下代码应该可以工作:
var someInvoiceList = new int[] {1, 2, 3};
var result = list_A.Where(x => someInvoiceList.Contains(x.InvoiceID));