【问题标题】:How to add a where clause to Entity Framework query如何将 where 子句添加到实体框架查询
【发布时间】:2020-02-06 15:55:15
【问题描述】:

我一直试图弄清楚如何为此添加Where 子句。我需要

Where OrderHeader.OrderStatus = "NEW"

我们不胜感激。

using (context)
{
    var orderData = context.OrderHeaders
                           .Join(context.OrderLines,
                                 OrderHeader => OrderHeader.Id,
                                 OrderLine => OrderLine.OrderHeaderId,
                                 (OrderHeader, OrderLine) => new
                                               {
                                                   Id = OrderHeader.Id
                                               }).ToList()

    foreach (var order in orderData)
    {
        CreateOrder(order.Id, context);
    }
}

【问题讨论】:

  • 该查询将返回重复的 OrderHeader id,假设它们可以有多个 OrderLine。
  • @juharr 是的,我认为我的这部分代码不需要加入。有没有办法添加 Distinct?
  • 是的,您只需在 ToList() 之前执行 .Distinct()。我假设加入是只获取具有至少一个 OrderLine 的 OrderHeader id。如果是这样,您可以改为 .Where(oh => oh.OrderLines.Any()) 而不会创建重复项。

标签: c# asp.net asp.net-core entity-framework-6


【解决方案1】:
context.OrderHeaders
    .Where(o => o.OrderStatus == "NEW")
    .Join(...

【讨论】:

  • 谢谢。这很容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-27
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-15
相关资源
最近更新 更多