EF4 STE包含路径....排除路径?

时间:2011-02-21 16:14:17

标签: entity-framework entity-framework-4 domain-driven-design repository-pattern self-tracking-entities

上下文:存储库模式,WCF,WPF / SL

在我的自我跟踪实体库中,我需要显式加载一些相关属性才能正确处理查询。这些客户端请求的包含,我想摆脱它们,以保持网络流量合理。到目前为止我的解决方案是:

  1. 接收查询
  2. 加载包括回答请求所必需的
  3. 执行查询
  4. 创建临时IEnumerable
  5. 迭代4)并再次加载所有项目,这次只使用客户端应用程序请求的包含路径
  6. 通过WCF返回实体
  7. 我想这样做:

    1. 接收查询
    2. 加载所有包含(基础架构加客户端请求)
    3. 执行查询
    4. 卸载“基础设施”包括
    5. 通过WCF返回实体

      这样做的正确方法是什么?

    6. 谢谢,  阿明

1 个答案:

答案 0 :(得分:0)

延迟加载和正确的DTO响应对象怎么样?

  1. WCF返回自定义订单或GetOrderResponse(Contracts.Order)
  2. 从EntityModel加载订单到存储库(只是订单)
  3. 使用automapper进行映射EntityModel.Order => Contracts.Order
  4. 结果:仅加载Contracts.Order中的相应属性:

    实施例。 Contracts.Order        数        OrderDetails(=>仅通过延迟加载加载此属性,因为它已映射)

    如果要构建SOA或Web服务,请不要让客户端指定加载图。如果客户端需要指定负载图表,请考虑使用WCF数据服务部署模型,效果很好。

    也许你可以建立两个系统......一个SOA和一个(只读)数据服务。