linq to实体嵌套选择填充

发布于 2025-01-08 18:12:09 字数 607 浏览 4 评论 0原文

我试图在 linq toEntity 查询中返回一个结果和一个嵌套结果。

Orders[] orderlist =
(from m in db.Orders.Include("OrderLines")
    where
    areas.Contains(m.Area)
    && m.Branch == branch
    && (m.OrderStatus == "1" || m.OrderStatus == "4")
    && m.SpecialInstrs == string.Empty
    select m
HOW??---> m.OrderLines = m.OrderLines.Where(p => (p.LineType == "1" || p.LineType == "7") && p.MBomFlag != "C").ToArray()
).ToArray();

问题是,当我实际上只想要某些订单行时,包含会返回每个订单的所有 FK'd OrderLines。

我该怎么做?

Orders 和 OrderList 都是 L2E 和 poco 实体生成器生成的 POCO 实体。

I'm trying to return a result and a nested result in a linq to entities query.

Orders[] orderlist =
(from m in db.Orders.Include("OrderLines")
    where
    areas.Contains(m.Area)
    && m.Branch == branch
    && (m.OrderStatus == "1" || m.OrderStatus == "4")
    && m.SpecialInstrs == string.Empty
    select m
HOW??---> m.OrderLines = m.OrderLines.Where(p => (p.LineType == "1" || p.LineType == "7") && p.MBomFlag != "C").ToArray()
).ToArray();

The problem is that the include returns all the FK'd OrderLines for each order when I really only want certain order lines.

How do I do this?

Orders and OrderList are both POCO entities generated by L2E and the poco entity generator.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吃→可爱长大的 2025-01-15 18:12:09

您可以手动加入它们:

Orders[] orderlist = (from m in db.Orders
                      join p in db.Orderlines
                        on p.OrderId = m.Id
                      where areas.Contains(m.Area) 
                        && m.Branch == branch
                        && (m.OrderStatus == "1" || m.OrderStatus == "4")
                        && m.SpecialInstrs == string.Empty
                        && (p.LineType == "1" || p.LineType == "7")
                        && p.MBomFlag != "C"
                      select m).ToArray();

You can manually join them:

Orders[] orderlist = (from m in db.Orders
                      join p in db.Orderlines
                        on p.OrderId = m.Id
                      where areas.Contains(m.Area) 
                        && m.Branch == branch
                        && (m.OrderStatus == "1" || m.OrderStatus == "4")
                        && m.SpecialInstrs == string.Empty
                        && (p.LineType == "1" || p.LineType == "7")
                        && p.MBomFlag != "C"
                      select m).ToArray();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文