【问题标题】:LINQ query: Dynamically add Includes at run timeLINQ 查询:在运行时动态添加包含
【发布时间】:2012-02-06 19:26:37
【问题描述】:

我有一个运行 LINQ 查询并返回订单的方法 GetOrder(int OrderID)。在查询中可以预加载许多对象属性(即使用 Include() ),例如DeliveryMethod、Customer、CustomerBillingAddress 等。我希望该方法允许调用者通过方法上的参数指定预加载哪些属性。不用说,我不想在方法中明确写出每个可能的 LINQ 查询。

那么是否可以对主查询进行编码,然后动态添加 .Includes,例如

if(PreLoadCustomer)
     query.Include("Customer")

注意:我知道有延迟加载 - 这不起作用 - 相关对象需要立即可用。

谢谢

【问题讨论】:

  • 你的例子有什么问题?
  • @LadislavMrnka,问题是Include的结果没有分配回查询,所以没有效果...

标签: linq entity-framework


【解决方案1】:

那么是否可以对主查询进行编码,然后动态添加 .Includes

实际上,先添加包含,然后编写查询本身会更有意义:

ObjectQuery<Order> orders = db.Orders;
if(PreLoadCustomer)
     orders = orders.Include("Customer");


var query =
    from o in orders
    ...

【讨论】:

    猜你喜欢
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-04-09
    • 2015-10-11
    相关资源
    最近更新 更多