LINQ包含查询

eri*_*pap -1 c# sql linq

我是LINQ的新手,我通常会用SQL解决这个问题,但现在我正在尝试用linq做同样的事情,我无法弄清楚这一点.我有3张桌子:

  • 订单(OrderID,Number等)
  • OrdersDetail(OrderID,ProductID,Quantity等)
  • 产品(ProductID,代码,描述)

现在我需要一个包含产品匹配特定代码或描述字符串的订单列表.我的SQL将是:

SELECT * FROM Orders WHERE OrderID IN(SELECT OrderID FROM OrdersDetail WHERE ProductID IN(SELECT ProductID FROM Products WHERE Code LIKE 'FilterText%' OR Descripcion LIKE 'FilterText%'))
Run Code Online (Sandbox Code Playgroud)

我如何使用LINQ执行此操作?这也是最好的方法,特别是如果Products表很大?谢谢!

AD.*_*Net 5

db.Orders.Where(o=>o.OrderDetails
                        .Any(od=>od.Product.Code.StartsWith("filterText") 
                           || od.Product.Description.StartsWith("filterText")))
          .ToList()
Run Code Online (Sandbox Code Playgroud)

  • 我相信OP使用的特定"LIKE"子句可能要考虑使用"StartsWith"而不是contains.否则,这看起来是正确的答案! (2认同)