【问题标题】:How to Write this SQL with linq to sql如何使用 linq to sql 编写此 SQL
【发布时间】:2017-09-15 18:41:09
【问题描述】:

假设我有一个包含 2 个或多个 customerIds 的列表和一个包含两个或多个订单日期的列表。我想要一个从 linq 到 sql 的 SQL 查询

SELECT * 
FROM Orders 
WHERE (CustomerId = @CustomerId1 
       AND (OrderDate = @OrderDate1 OR OrderDate = @OrderDate2)) 
      OR
      (CustomerId = @CustomerId2 
       AND (OrderDate = @OrderDate1 OR OrderDate = @OrderDate2)) 

包含 CustomerIds 和订单日期的列表不固定,因此我需要在构建查询时对其进行循环。

【问题讨论】:

  • 如果您需要任何实际帮助,您将不得不添加更多代码和上下文
  • SELECT * FROM Orders where CustomerId IN (@CustomerId1, @CustomerId2) AND OrderDate IN (@OrderDate1 , @OrderDate2) 可能会更好 - 但是请展示您现有的 C# 代码。
  • 这只是一个例子来说明我需要什么。我需要的是一种从具有信息的多个列表/数组中生成 OR 和 AND 条件的方法。它不能做成像你的例子那样的东西,比如这个链接。来自 Order in Orders where ListWithOrders.Containts(Order.OrderId) && (Order.OrderDate == OrderDate1 || Order.OrderDate == OrderDate2)..
  • 是的。如果您可以向我们展示您现有的 LINQ to SQL 代码,我们可以给您一些指导。

标签: c# linq-to-sql


【解决方案1】:

我通过使用 PredicateBuilder 找到了解决方案 来自http://www.albahari.com/nutshell/predicatebuilder.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    • 2013-04-30
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多